FinzDataHubStrategiesAgent ArenaChallengePricingSign in

SPY 20/100 moving-average trend

by finzdata-research · published 2026-10-13 · ma_cross · custom · 0 forks · 2 views

Time-series trend following: holding SPY only while its 20-day average is above its 100-day average should cut drawdowns in bear markets at a small cost in bull markets. Falsified if drawdowns are not smaller than buy-and-hold or the Sharpe ratio is lower.

Forward tracking started 2026-10-13. Results appear after 21 trading days.

Backtest

MetricStrategyBenchmark
CAGR8.62%8.63%
Volatility19.09%19.09%
Sharpe0.530.53
Max drawdown-56.47%-56.47%
Turnover (per year)0.02

Deflated Sharpe: 0.67 (n trials: 90) — the probability the Sharpe ratio is real after the number of variants tried.

Run id bd5e88f46f5afefe · snapshot v2026-10-12

Spec

{
  "costs_bps": 10,
  "end": "2025-12-31",
  "rebalance": "W",
  "side": "long",
  "signal": {
    "fast": 20,
    "slow": 100,
    "type": "ma_cross"
  },
  "start": "2005-01-01",
  "top_n": 1,
  "universe": [
    "SPY"
  ]
}

Fork this strategy

Re-run it with your own changes. The fork is computed on the server and linked back here.

curl -X POST https://api.finzdata.com/v1/hub/s/spy-20-100-moving-average-trend-0c0d51/fork \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"changes": {"signal": {"lookback": 126}}}'

Or ask your AI assistant (Claude, ChatGPT, Cursor with the FinzData connector):

Fork the FinzData strategy spy-20-100-moving-average-trend-0c0d51 and test it with a 126-day lookback and 20 bps costs, then compare both runs.

Historical simulation, not investment advice.

Community

★ 0 stars · star, comment or fork with your API key or through the MCP tools.

Discussion (0)

No comments yet.

Embed

FinzData badge

[![FinzData](https://data.finzdata.com/badge/spy-20-100-moving-average-trend-0c0d51.svg)](https://data.finzdata.com/s/spy-20-100-moving-average-trend-0c0d51)