Baseline strategy backtest
Bottom line
- Equal-weight sectors: 9.0%/yr vs 8.4% for SPY · Sharpe 0.46 vs 0.41 · worst drop -53% vs -55% · difference from SPY: t = +0.3 (not statistically significant)
- Sector momentum: 9.3%/yr vs 8.4% for SPY · Sharpe 0.46 vs 0.41 · worst drop -46% vs -55% · difference from SPY: t = +0.4 (not statistically significant)
- Trend following: 8.5%/yr vs 8.4% for SPY · Sharpe 0.57 vs 0.41 · worst drop -26% vs -55% · difference from SPY: t = -0.3 (not statistically significant)
A |t| of 2 or more is the usual bar for "probably not luck". Below that, the gap from SPY is within what chance alone produces over this many years.
Summary
| CAGR | Volatility | Sharpe | Sharpe t-stat | Max drawdown | Turnover / yr | Trades / yr | Time invested | Excess vs SPY / yr | t-stat vs SPY | |
|---|---|---|---|---|---|---|---|---|---|---|
| Buy & hold SPY | 8.4% | 19.2% | 0.41 | 2.1 | -55% | 4% | 0 | 100% | — | — |
| Equal-weight sectors | 9.0% | 18.1% | 0.46 | 2.4 | -53% | 35% | 108 | 100% | +0.3% | +0.3 |
| Sector momentum | 9.3% | 18.9% | 0.46 | 2.4 | -46% | 540% | 44 | 100% | +0.8% | +0.4 |
| Trend following | 8.5% | 12.2% | 0.57 | 2.9 | -26% | 131% | 1 | 75% | -1.0% | -0.3 |
Sharpe t-stat: is the return above T-bills distinguishable from zero? t-stat vs SPY: is the return different from just holding SPY? Turnover / yr: how much of the portfolio is traded per year (100% = the whole portfolio once). Trades / yr: individual buy or sell orders, including small rebalancing trades.
How much do trading costs matter?
The same strategies at 0, 5 and 20 bps per dollar traded. Strategies that trade more lose more as costs rise.
| CAGR @ 0 bps | CAGR @ 5 bps | CAGR @ 20 bps | Sharpe @ 0 bps | Sharpe @ 5 bps | Sharpe @ 20 bps | |
|---|---|---|---|---|---|---|
| Buy & hold SPY | 8.4% | 8.4% | 8.4% | 0.41 | 0.41 | 0.41 |
| Equal-weight sectors | 9.0% | 9.0% | 8.9% | 0.46 | 0.46 | 0.46 |
| Sector momentum | 9.6% | 9.3% | 8.4% | 0.48 | 0.46 | 0.42 |
| Trend following | 8.6% | 8.5% | 8.3% | 0.58 | 0.57 | 0.55 |
Parameter sensitivity
The bold rows are the settings fixed in advance. The others are a robustness check, not a menu: if only one setting works, that's probably luck, and picking the best cell after looking would be overfitting.
Sector momentum
| Lookback (months) | Sectors held | CAGR | Sharpe | Max drawdown | t-stat vs SPY |
|---|---|---|---|---|---|
| 6 | 2 | 9.7% | 0.47 | -44% | +0.6 |
| 6 | 3 | 7.9% | 0.40 | -46% | -0.3 |
| 6 | 4 | 8.7% | 0.44 | -47% | +0.1 |
| 9 | 2 | 7.6% | 0.37 | -50% | -0.2 |
| 9 | 3 | 8.7% | 0.43 | -50% | +0.2 |
| 9 | 4 | 8.9% | 0.45 | -47% | +0.2 |
| 12 | 2 | 8.7% | 0.42 | -51% | +0.3 |
| 12 | 3 | 9.3% | 0.46 | -46% | +0.4 |
| 12 | 4 | 8.3% | 0.42 | -49% | -0.1 |
Trend following
| Moving average (days) | CAGR | Sharpe | Max drawdown | t-stat vs SPY |
|---|---|---|---|---|
| 100 | 6.4% | 0.42 | -25% | -1.0 |
| 150 | 8.5% | 0.58 | -26% | -0.3 |
| 200 | 8.5% | 0.57 | -26% | -0.3 |
| 250 | 9.1% | 0.59 | -21% | -0.1 |
By decade
Does any edge hold up across very different markets?
| Period | Strategy | CAGR | Sharpe | Max drawdown |
|---|---|---|---|---|
| 2000–2009 | Buy & hold SPY | -0.9% | -0.05 | -55% |
| Equal-weight sectors | 2.7% | 0.10 | -53% | |
| Sector momentum | 3.0% | 0.12 | -46% | |
| Trend following | 7.7% | 0.48 | -12% | |
| 2010–2019 | Buy & hold SPY | 13.5% | 0.90 | -19% |
| Equal-weight sectors | 12.6% | 0.87 | -19% | |
| Sector momentum | 10.2% | 0.66 | -26% | |
| Trend following | 8.1% | 0.64 | -21% | |
| 2020–now | Buy & hold SPY | 15.6% | 0.68 | -34% |
| Equal-weight sectors | 13.2% | 0.60 | -37% | |
| Sector momentum | 17.9% | 0.78 | -30% | |
| Trend following | 10.2% | 0.59 | -26% |
Year by year
Blue = up, red = down; deeper shade = bigger move.
| Buy & hold SPY | Equal-weight sectors | Sector momentum | Trend following | |
|---|---|---|---|---|
| 2000 | -8.9% | 2.8% | -0.1% | 1.0% |
| 2001 | -11.8% | -6.7% | -7.9% | 3.4% |
| 2002 | -21.6% | -18.3% | -12.6% | -3.4% |
| 2003 | 28.2% | 28.3% | 29.5% | 23.0% |
| 2004 | 10.7% | 14.1% | 12.6% | 10.7% |
| 2005 | 4.8% | 7.9% | 17.6% | 4.8% |
| 2006 | 15.8% | 16.2% | 4.6% | 15.8% |
| 2007 | 5.1% | 9.5% | 9.7% | 5.1% |
| 2008 | -36.8% | -35.2% | -30.1% | 0.4% |
| 2009 | 26.4% | 28.2% | 21.0% | 19.5% |
| 2010 | 15.1% | 16.1% | 13.9% | 6.8% |
| 2011 | 1.9% | 3.2% | -2.2% | -3.0% |
| 2012 | 16.0% | 14.7% | 7.7% | 14.1% |
| 2013 | 32.3% | 30.9% | 38.3% | 32.3% |
| 2014 | 13.5% | 13.3% | 10.5% | 13.5% |
| 2015 | 1.2% | -1.3% | 1.6% | -8.3% |
| 2016 | 12.0% | 14.5% | 6.7% | 8.2% |
| 2017 | 21.7% | 19.2% | 14.9% | 21.7% |
| 2018 | -4.6% | -6.3% | -8.7% | -6.5% |
| 2019 | 31.2% | 27.7% | 25.9% | 8.6% |
| 2020 | 18.3% | 10.1% | 16.7% | 18.9% |
| 2021 | 28.7% | 29.7% | 23.5% | 28.7% |
| 2022 | -18.2% | -5.2% | 9.5% | -20.8% |
| 2023 | 26.2% | 14.0% | 10.4% | 8.3% |
| 2024 | 24.9% | 15.7% | 11.2% | 24.9% |
| 2025 | 17.7% | 13.4% | 17.3% | 12.1% |
| 2026 YTD | 15.1% | 13.9% | 33.8% | 4.8% |
Method and caveats
- Prices: Yahoo Finance dividend-adjusted closes, so returns include dividends and are after ETF fees.
- Universe: SPY plus the nine original Select Sector SPDR ETFs. All existed for the whole period, which avoids survivorship bias (testing only on companies that survived to today).
- No look-ahead: each signal uses closes up to the month-end and trades at the next trading day's close.
- Costs: 5 bps per dollar traded for spread and slippage; commissions assumed $0.
- Parameters were fixed at standard values before running (12-month momentum skipping the latest month, top 3 sectors, 200-day average), not tuned on this data.
- Not modeled: taxes (the trading strategies realize gains every year; buy-and-hold defers them), fractional-share rounding, and intraday execution.
- t-stats assume independent daily returns. Treat them as rough.
- Past results are not a forecast.