Trading Strategy Backtests on the SPY

About this data

Each strategy simulates investing $100,000 in SPY from January 1993 to the present. The table shows full-period CAGR, max drawdown, trailing returns (1/5/10yr), and rolling 5yr and 10yr CAGR windows (median, best, worst). Click any strategy to overlay its equity curve on the chart; click a rolling best/worst or max drawdown cell to highlight that period.

Dividends included. SPY price data from Yahoo Finance is dividend-adjusted — historical prices are retroactively lowered so that price appreciation reflects total return including reinvested dividends. Buy and Hold's 10.47% CAGR is total return, not price-only.

Next-day open execution. When a strategy generates a signal at the close, the trade executes at the next day's open — matching what a real trader would experience. Leveraged strategies' internal daily rebalance (which happens inside the ETF) is unaffected.

5 bps friction per trade. Every buy and sell incurs a 0.05% cost (bid-ask spread + slippage). SPY's actual spread is ~1-2 bps; 5 bps is conservative. High-frequency strategies pay more total friction than low-frequency ones.

Cash earns 0% interest. When a strategy moves to cash, that cash earns nothing. This is a conservative bias — it makes it harder for timing strategies to beat Buy and Hold.

Trailing CAGR Rolling 5yr Rolling 10yr
Strategy Full Max DD 1yr 5yr 10yr Median Best Worst Median Best Worst
Buy and Hold Invest 100% on day 1 and never sell.
10.5% -55.2% 18.3% 12.1% 14.3% 11.3% 28.3% -8.4% 8.6% 17.6% -4.2%
2x Leveraged MA200 Exit 2x leverage above 200 MA, 100% cash below.
21.0% -31.9% 28.7% 24.2% 26.5% 20.1% 54.9% 0.7% 19.3% 30.1% 4.0%
Leveraged on Signal 1.5x leverage above 200 MA, 1x below.
20.2% -54.8% 27.8% 22.2% 25.2% 21.2% 46.1% -2.7% 18.1% 28.5% 2.4%
2x Leveraged B&H Simulate 2x daily leverage on SPY buy and hold (like SSO).
17.9% -83.7% 35.0% 22.2% 26.4% 20.6% 59.9% -20.3% 13.6% 34.9% -12.5%
1.5x Leveraged B&H Simulate 1.5x daily leverage on SPY buy and hold.
14.6% -72.2% 26.9% 17.5% 20.7% 16.2% 43.8% -14.0% 11.6% 26.4% -7.9%
Cash + 2x Leverage 50% cash + 2x leveraged SPY; deploy cash on 10%+ dips.
14.1% -82.2% 30.7% 18.7% 21.3% 18.5% 45.5% -20.4% 11.3% 31.4% -11.9%
Golden Cross 1.5x 1.5x leveraged above golden cross, 100% cash below.
13.3% -47.3% 1.1% 14.3% 13.5% 12.7% 36.7% -3.2% 11.9% 20.7% 5.0%
SMA200 + RSI Pullback Fully invested above 200-day MA. Below it, buys RSI(2) < 5 dips and sells at RSI(2) > 70.
Notes
  • Not fragile: 53 of 80 nearby parameter combinations also beat Buy & Hold. The default parameters (SMA 200, RSI(2) < 5) are mid-pack, not cherry-picked.
  • Best combo: SMA 250 + RSI(5) < 5 at 12.00% CAGR. Worst: SMA 175 + RSI(5) < 7 at 9.00%. RSI period matters most — RSI(2) consistently outperforms RSI(3/4/5).
12.1% -33.7% 28.5% 11.9% 12.7% 11.7% 27.4% 0.5% 11.5% 16.1% 5.5%
Momentum Check 12M Monthly: invest if 12-month return > 0, else cash.
10.8% -33.7% 18.3% 11.3% 12.2% 9.7% 28.3% -0.2% 10.1% 15.1% 3.4%
Yield Curve Signal Cash when yield curve inverts (10yr < 5yr), invest when normal.
10.3% -55.2% 18.3% 9.7% 13.1% 11.8% 29.1% -8.3% 9.3% 17.6% -3.7%
Cash Reserve Slow Rebuild Hold 10% cash; deploy on 5% dip, rebuild 1%/month near ATH.
10.3% -55.1% 18.3% 12.1% 14.0% 11.2% 27.7% -8.4% 8.5% 17.5% -4.2%
Cash Reserve Deep Dip Hold 10% cash; deploy on 10% dip, rebuild only after 21 days at ATH.
10.3% -55.2% 18.3% 12.1% 14.3% 11.3% 27.3% -8.4% 8.5% 17.5% -4.2%
Dual Momentum Invest if SPY 12m return positive AND beats T-bill yield.
10.2% -33.7% 18.3% 10.4% 11.2% 9.3% 26.9% -1.2% 9.7% 14.4% 3.1%
Volatility Scaled Cash Size cash reserve by realized vol (5-20%); deploy on dips, rebalance monthly.
10.2% -55.0% 18.1% 11.7% 13.7% 11.0% 27.4% -8.5% 8.5% 17.3% -4.0%
Crash Budget Hold 10% cash; deploy at -10%, all-in at -20%, rebuild 1%/mo near ATH.
10.0% -54.6% 18.7% 12.0% 13.9% 11.0% 26.6% -8.3% 8.3% 17.0% -4.1%
200 Day MA Risk Toggle 100% invested above 200-day MA, 50% below. Rebalance when >2% off.
9.4% -37.5% 16.5% 11.1% 12.4% 9.2% 25.7% -3.9% 8.0% 14.5% -1.4%
Golden Cross Delayed Buy on golden cross, sell on death cross, but waits 5 days to confirm signal holds.
9.3% -33.7% 3.6% 10.7% 9.8% 8.8% 23.8% -3.2% 8.3% 13.9% 3.3%
Adaptive MA (KAMA) Buy above Kaufman Adaptive MA, sell below. MA speeds up in trends, slows in choppy markets.
9.3% -33.1% 9.3% 5.3% 10.1% 8.8% 24.0% -0.7% 8.9% 15.0% 3.3%
ATR Trailing Stop 2x Buy and hold with 2x ATR trailing stop (tighter).
9.3% -56.4% 18.0% 9.7% 14.5% 11.7% 24.4% -9.4% 7.0% 17.4% -4.8%
Momentum + Trend Combo Invest when 12M return > 0 AND price > 200-day SMA.
9.2% -23.7% 12.8% 8.8% 11.1% 8.8% 26.4% -1.9% 8.7% 13.3% 2.5%
Percent From High Scale allocation by distance from 52-week high: 100%/80%/60%/40%.
9.2% -34.8% 14.9% 10.2% 12.0% 9.4% 26.1% -2.5% 8.3% 14.7% -0.4%
SMA Crossover 50/200 Buy on golden cross (50-day SMA > 200-day), sell on death cross.
9.2% -33.7% 0.7% 9.8% 9.2% 8.7% 23.8% -1.7% 8.2% 14.0% 3.9%
Monthly Seasonality Weight months by historical avg returns: heavy Nov-Apr, light Jun-Sep.
9.0% -44.2% 7.4% 9.2% 10.9% 9.6% 22.1% -6.2% 8.6% 14.8% -1.6%
Multi-Factor Regime Score from VIX + trend + momentum → allocate 0-100%.
8.9% -21.0% 13.8% 8.8% 10.1% 8.5% 23.3% -1.3% 8.5% 11.9% 2.7%
Vol Target 15% Scale position to target 15% annualized volatility, rebalance weekly.
8.9% -46.6% 11.3% 11.0% 12.1% 9.6% 22.7% -6.7% 8.0% 14.4% -2.1%
VIX Buy Spikes 80% base allocation, increase to 100% on VIX spikes > 35.
8.8% -51.8% 15.8% 10.2% 12.0% 9.6% 23.4% -8.3% 7.4% 15.1% -3.9%
200-Day MA 25% Floor 100% invested above 200-day MA, 25% below. Rebalances weekly.
8.5% -29.3% 12.4% 8.7% 11.2% 8.2% 25.4% -2.7% 7.9% 13.6% -0.9%
ATR Trailing Stop 3x Buy and hold with 3x ATR trailing stop, re-enter on new high.
8.3% -60.0% 21.6% 12.3% 15.2% 10.4% 24.4% -10.7% 5.7% 17.1% -7.2%
Momentum Check 6M Monthly: if SPY 6-month return > 0, invest; otherwise cash.
8.3% -33.7% 4.3% 8.6% 7.4% 7.6% 24.0% -1.8% 7.7% 12.7% 2.6%
200 Day MA Full Exit 100% invested above 200-day MA, 100% cash below.
7.8% -28.6% 14.0% 9.5% 10.2% 6.8% 23.4% -3.3% 6.8% 12.2% -0.9%
Momentum Check 3M Monthly: invest if 3-month return > 0, else cash.
7.8% -29.3% 14.8% 11.8% 10.7% 6.6% 21.9% -3.9% 6.8% 11.2% -1.2%
Vol Target 10% Scale position to target 10% annualized volatility, rebalance weekly.
7.3% -35.7% 10.1% 8.9% 10.2% 7.7% 18.3% -5.2% 6.5% 11.3% -0.9%
Relative Strength vs Bonds SPY if SPY 12m return > TLT 12m return, else cash.
7.2% -47.5% 18.3% 12.1% 7.8% 5.0% 28.3% -5.5% 4.4% 11.9% -0.2%
VIX Regime Switch 100% at VIX<15, 70% at VIX<25, 30% at VIX>25.
6.9% -32.3% 7.8% 7.7% 9.2% 6.9% 18.5% -3.9% 5.5% 10.5% -1.3%
RSI(2) Pullback Buy when RSI(2) < 10, sell when RSI(2) > 90 (Connors-style).
6.7% -28.6% 17.7% 12.3% 8.9% 5.5% 18.1% -1.9% 5.3% 10.7% 0.1%
Trend + Vol Target Above 200 MA: vol-target 12% position. Below: 100% cash.
6.6% -20.3% 9.7% 7.4% 9.1% 6.2% 17.8% -2.5% 6.1% 10.4% 0.3%
Risk Parity Lite Sizes SPY allocation monthly — lower SPY vol relative to TLT means higher allocation.
6.6% -47.5% 6.5% 6.1% 6.5% 5.2% 28.3% -7.3% 5.3% 10.1% -2.9%
ROC Filter Scale position by 6-month rate of change: 100%/75%/0%.
6.5% -24.2% 6.5% 7.0% 6.7% 5.9% 20.0% -3.7% 5.8% 9.9% 0.8%
Bollinger Band Bounce Buy below lower Bollinger Band, sell above upper band.
6.5% -52.8% 12.6% 7.1% 10.6% 8.9% 18.1% -7.4% 5.3% 14.2% -4.4%
DCA Monthly Invest $252/month equally over the full period.
6.4% -35.8% 18.2% 12.0% 13.6% 4.9% 21.4% -4.7% 5.1% 15.2% -2.3%
100-Day MA Filter 100% invested above 100-day MA, 100% cash below.
6.3% -52.0% 14.9% 10.3% 11.5% 6.6% 18.6% -9.7% 6.5% 12.1% -4.1%
Sell in May 100% invested Nov–Apr, 100% cash May–Oct.
6.2% -34.7% -1.9% 3.6% 5.4% 6.1% 18.7% -4.5% 6.6% 11.8% -0.6%
Williams %R Buy when Williams %R < -80 (oversold), sell > -20 (overbought).
6.1% -42.6% 12.7% 3.7% 5.3% 6.8% 20.0% -4.4% 5.8% 11.1% -0.9%
Donchian Channel 55 Buy on 55-day high breakout, sell on 55-day low (Turtle-style).
6.1% -28.7% 12.8% 8.4% 9.5% 5.3% 15.2% -3.6% 5.0% 10.5% -1.5%
January Effect 100% invested in January, 50% rest of year.
5.9% -36.5% 9.9% 7.2% 8.7% 6.2% 15.4% -5.0% 4.8% 9.7% -2.4%
ADX Trend Filter Buy when ADX > 25 (strong trend), exit when ADX < 20.
5.8% -50.1% 11.1% 8.6% 9.9% 7.3% 17.3% -9.2% 3.5% 12.1% -4.5%
RSI(5) Moderate Buy when RSI(5) < 20, sell when RSI(5) > 80.
5.7% -39.9% 19.6% 9.6% 4.8% 4.4% 15.4% -4.5% 5.1% 9.2% 0.2%
Triple MA 20/50/200 Buy when 20 > 50 > 200 SMA aligned, sell when any cross breaks.
5.5% -19.9% 9.9% 7.0% 8.7% 5.0% 16.3% -2.8% 4.3% 9.3% -0.1%
RSI Mean Reversion Buy when RSI(14) < 30 (oversold), sell when > 70 (overbought).
5.3% -47.5% 4.0% 4.7% 6.1% 5.8% 17.5% -7.8% 5.2% 11.7% -4.4%
EMA Crossover 12/26 Buy when 12-day EMA > 26-day EMA, sell on cross down.
5.2% -36.2% 19.8% 10.4% 8.7% 4.1% 15.2% -5.7% 4.1% 9.5% -2.6%
VIX Mean Reversion Buy when VIX > 30 (fear spike), sell when VIX < 15.
4.8% -60.2% 24.9% 8.2% 9.9% 5.3% 19.0% -12.8% 4.0% 11.9% -6.6%
Donchian Channel 20 Buy on 20-day high breakout, sell on 20-day low.
4.7% -43.0% 15.1% 8.2% 9.1% 4.5% 14.1% -7.0% 4.5% 10.3% -4.1%
EMA Crossover 9/21 Buy when 9-day EMA > 21-day EMA, sell on cross down.
4.5% -35.7% 18.6% 8.6% 8.7% 3.8% 13.5% -6.8% 3.6% 9.8% -2.8%
50-Day MA Filter 100% invested above 50-day MA, 100% cash below.
3.9% -40.7% 12.0% 5.7% 6.5% 3.3% 15.7% -7.1% 3.3% 7.5% -4.1%
MACD Signal Buy when MACD(12,26) crosses above signal(9), sell on cross below.
3.0% -30.3% -5.8% 2.1% 5.1% 3.2% 10.4% -4.1% 2.8% 6.6% -2.7%
Turtle System 20-day breakout entry, 10-day low exit, ATR position sizing.
2.9% -25.6% 0.7% 5.1% 5.3% 3.9% 8.4% -4.0% 2.4% 6.4% -2.8%
Chandelier Exit Buy above 22-day high minus 3× ATR, sell below.
1.7% -68.0% 7.5% 1.9% 6.7% 3.3% 14.8% -13.9% -0.6% 9.8% -10.1%
Parabolic SAR Buy when trailing SAR flips bullish, sell when it flips bearish.
1.7% -50.2% 8.7% 0.8% 5.6% 1.7% 13.2% -9.5% 0.6% 6.5% -6.4%
Bollinger Squeeze Buy on Bollinger squeeze breakout, sell when price drops below SMA.
1.1% -15.0% -1.6% 2.0% 0.7% 0.8% 5.9% -3.0% 0.5% 2.6% -0.6%