← Research and backtests

Baseline strategy backtest

Daily data 2000-01-03 → 2026-10-09 (26.7 years) · signals at the month-end close, filled at the next day's close · 5 bps cost per dollar traded · uninvested cash earns the 13-week T-bill rate

Bottom line

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

CAGRVolatilitySharpeSharpe t-statMax drawdownTurnover / yrTrades / yrTime investedExcess vs SPY / yrt-stat vs SPY
Buy & hold SPY8.4%19.2%0.412.1-55%4%0100%——
Equal-weight sectors9.0%18.1%0.462.4-53%35%108100%+0.3%+0.3
Sector momentum9.3%18.9%0.462.4-46%540%44100%+0.8%+0.4
Trend following8.5%12.2%0.572.9-26%131%175%-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.

Growth of $100 for each strategy, log scale
Drawdowns for each strategy

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 bpsCAGR @ 5 bpsCAGR @ 20 bpsSharpe @ 0 bpsSharpe @ 5 bpsSharpe @ 20 bps
Buy & hold SPY8.4%8.4%8.4%0.410.410.41
Equal-weight sectors9.0%9.0%8.9%0.460.460.46
Sector momentum9.6%9.3%8.4%0.480.460.42
Trend following8.6%8.5%8.3%0.580.570.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 heldCAGRSharpeMax drawdownt-stat vs SPY
629.7%0.47-44%+0.6
637.9%0.40-46%-0.3
648.7%0.44-47%+0.1
927.6%0.37-50%-0.2
938.7%0.43-50%+0.2
948.9%0.45-47%+0.2
1228.7%0.42-51%+0.3
1239.3%0.46-46%+0.4
1248.3%0.42-49%-0.1

Trend following

Moving average (days)CAGRSharpeMax drawdownt-stat vs SPY
1006.4%0.42-25%-1.0
1508.5%0.58-26%-0.3
2008.5%0.57-26%-0.3
2509.1%0.59-21%-0.1

By decade

Does any edge hold up across very different markets?

PeriodStrategyCAGRSharpeMax drawdown
2000–2009Buy & hold SPY-0.9%-0.05-55%
Equal-weight sectors2.7%0.10-53%
Sector momentum3.0%0.12-46%
Trend following7.7%0.48-12%
2010–2019Buy & hold SPY13.5%0.90-19%
Equal-weight sectors12.6%0.87-19%
Sector momentum10.2%0.66-26%
Trend following8.1%0.64-21%
2020–nowBuy & hold SPY15.6%0.68-34%
Equal-weight sectors13.2%0.60-37%
Sector momentum17.9%0.78-30%
Trend following10.2%0.59-26%

Year by year

Blue = up, red = down; deeper shade = bigger move.

Buy & hold SPYEqual-weight sectorsSector momentumTrend 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%
200328.2%28.3%29.5%23.0%
200410.7%14.1%12.6%10.7%
20054.8%7.9%17.6%4.8%
200615.8%16.2%4.6%15.8%
20075.1%9.5%9.7%5.1%
2008-36.8%-35.2%-30.1%0.4%
200926.4%28.2%21.0%19.5%
201015.1%16.1%13.9%6.8%
20111.9%3.2%-2.2%-3.0%
201216.0%14.7%7.7%14.1%
201332.3%30.9%38.3%32.3%
201413.5%13.3%10.5%13.5%
20151.2%-1.3%1.6%-8.3%
201612.0%14.5%6.7%8.2%
201721.7%19.2%14.9%21.7%
2018-4.6%-6.3%-8.7%-6.5%
201931.2%27.7%25.9%8.6%
202018.3%10.1%16.7%18.9%
202128.7%29.7%23.5%28.7%
2022-18.2%-5.2%9.5%-20.8%
202326.2%14.0%10.4%8.3%
202424.9%15.7%11.2%24.9%
202517.7%13.4%17.3%12.1%
2026 YTD15.1%13.9%33.8%4.8%

Method and caveats