SPY 20/100 moving-average trend
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
| Metric | Strategy | Benchmark |
|---|---|---|
| CAGR | 8.62% | 8.63% |
| Volatility | 19.09% | 19.09% |
| Sharpe | 0.53 | 0.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.
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.
Community
★ 0 stars · star, comment or fork with your API key or through the MCP tools.
Discussion (0)
No comments yet.
Embed
[](https://data.finzdata.com/s/spy-20-100-moving-average-trend-0c0d51)