Case study · quant-lab
The same strategy returned +2616% or +314%
What I learned when a backtest looked too good to be true.
The setup
I tested a simple momentum strategy on the S&P 500 from 2010 to 2024: every month, buy the 20 stocks with the strongest recent trend. Trading costs (10 basis points) are included.
| Stock list | Total return | Per year | Sharpe |
|---|---|---|---|
| Today's S&P 500 members | +2616% | 25.1% | 1.09 |
| Members at the time (point-in-time) | +314% | 10.1% | 0.55 |
| SPY buy & hold (benchmark) | +557% | 13.6% | 0.83 |
Why the first number is wrong
A list of today's members only contains companies that later became large. The test could buy them early: it held Tesla for 34 months before Tesla joined the index in December 2020. That is hindsight, not skill.
The fix
I rebuilt the stock list as it was on each date (point-in-time membership) and handled delistings in the backtest engine. Same rules, same costs: +314%. A pairs-trading backtest showed the same pattern: +86.8% became −11.0% once a look-ahead hedge ratio was fixed.
What I don't claim
+314% is not a clean number either: 27% of the historical members have no free price data, so it is probably an upper bound. And the strategy trails simply holding SPY (+557%). The point was to measure the bias, not to find a winning strategy.