Five Backtesting Pitfalls That Fake Your Sharpe
Introduction
Backtesting helps evaluate a strategy, but its result depends on what information, securities, and costs the simulation includes. Here are five common ways a backtest can overstate performance and checks that may expose them.
1. Lookahead bias
Using data that was not available at decision time can inflate a backtest. A value’s publication time matters as much as its observation date.
How to catch it: Record when each input became available, then verify that every simulated decision uses only information available at that time. A fixed one-day offset is not sufficient for every data source.
2. Survivorship bias
Using today’s index constituents for earlier periods excludes securities that left the index, including delisted and acquired companies. The size and direction of the resulting bias depend on the strategy and sample.
How to catch it: Use historical index composition rather than current constituents.
3. Unrealistic cost models
Flat cost-per-trade assumptions break down for anything beyond small size. Model spread, impact, and borrow based on order size and market conditions.
How to catch it: Implement tiered cost models and test sensitivity across realistic trading ranges.
4. Overfitting
If you tested 100 variants and report the best one, your Sharpe is a statistic of the maximum, not the strategy. Use deflated Sharpe ratios to account for multiple testing.
How to catch it: Use out-of-sample validation and report performance on holdout periods.
5. Regime blindness
A strategy validated in one volatility regime often dies in the next. Walk-forward across regime boundaries or don’t ship it.
How to catch it: Test your strategy across different market regimes (high volatility, low volatility, trending, range-bound).
Further Reading
- Deflated Sharpe Ratios: How to Account for Multiple Testing — methodology for correcting selection bias