A backtest is only as trustworthy as the data and assumptions behind it. Many strategies that look brilliant on paper are actually artifacts of bad data, hidden bias, or unrealistic execution assumptions. This is the single biggest reason backtests fail to predict live performance.
Lookahead Bias
Lookahead bias happens when your backtest logic accidentally uses future information. A classic example: calculating a daily pivot using the day's high and low, then testing entries during that same day — you're using data that wasn't complete yet at entry time.
If your backtest assumes you entered exactly at a swing low that was only confirmed by price action days later, you've used information from the future. Always use only data available up to and including the decision bar.
Survivorship Bias
If you test a strategy only on currency pairs, stocks, or brokers that still exist today, you exclude every instrument that was delisted, went bankrupt, or had a broker shut down mid-history. This silently inflates results because failures are removed from the sample.
Spread, Commission, and Slippage Assumptions
A backtest that ignores spread, commission, and slippage is fiction. A scalping strategy that nets +0.3R per trade before costs can easily become negative after realistic spread and slippage on a retail account.
| Assumption | Realistic treatment |
|---|---|
| Spread | Use average historical spread for the instrument/session, not the tightest observed |
| Slippage | Add a few tenths of a pip/point on market entries, more during news |
| Commission | Include broker's actual per-lot commission in every trade's P&L |
| Fill assumption | Assume limit orders may not fill even if price touches the level |
Bad or Incomplete Historical Data
- ▸Gaps in tick or minute data can hide stop-outs or fill prices that never really happened.
- ▸Free data providers often adjust or smooth historical highs/lows — verify against a second source.
- ▸Different brokers show different spreads and even slightly different OHLC due to differing liquidity providers.
Multiple Testing / Data Snooping
If you test 50 variations of a strategy on the same data set and pick the best one, you've essentially guaranteed a good-looking result by chance alone — this is data snooping. The more parameters you tweak, the more you need out-of-sample data to confirm the result is real.
Reserve the most recent 20-30% of your historical data and don't look at it until your rules are fully locked in. Testing on this untouched holdout is your best defense against data snooping.
Checklist Before Trusting a Backtest
- 1.Data source verified against at least one independent source.
- 2.No use of information not available at decision time.
- 3.Realistic spread, commission, and slippage applied to every trade.
- 4.Tested across multiple market regimes, not just one trending year.
- 5.Held-out data confirms results, not just the in-sample data used to build the rules.