A backtest is supposed to be a preview of how a strategy would have performed — but a flawed one is worse than no test at all, because it manufactures false confidence. The most damaging backtesting mistakes don't produce obviously bad results; they produce beautiful ones that evaporate the moment you go live. Knowing where these traps hide is what separates a genuinely validated strategy from a well-decorated illusion.
Lookahead bias
Lookahead bias is the mistake of letting a strategy use information it couldn't have known at the time of a decision. It creeps in quietly: a rule that references a day's closing price to make a trade earlier that same day, or a signal calculated using data that only became available after the moment the trade supposedly happened. The result is a backtest that appears to predict the future, because in a sense it did — it cheated.
This is one of the most seductive errors because the numbers look spectacular. A strategy with even a small lookahead leak can post results no honest strategy could match, and it's easy to mistake that for genius. The fix is disciplined bookkeeping: at every decision point, the strategy must only use information that existed strictly before that point. If you're ever unsure whether a value was truly available in the moment, treat it as if it wasn't.
Overfitting to the past
Overfitting happens when you tune a strategy so tightly to historical data that it memorizes that specific history rather than learning a durable pattern. Add enough parameters and keep adjusting them until the backtest looks perfect, and you'll always find a combination that fits — but you've fit the noise, not the signal. Such a strategy performs beautifully on the data it was built on and falls apart on anything new.
The warning signs are worth internalizing. A strategy with many finely tuned settings, one that only works within a razor-thin range of parameters, or one whose performance collapses if you shift the test window slightly, is almost certainly overfit. Robust strategies tend to be simpler and to degrade gracefully — they still work, if less spectacularly, when conditions or parameters change a little.
The best defense is validating on data the strategy never saw during its design. If an edge survives on history it wasn't tuned against, it's far more likely to be real. If it only exists on the exact data you optimized, you've built a very precise map of the past with no predictive power.
Ignoring costs and unrealistic fills
A backtest that assumes free, instant, perfect execution is describing a market that doesn't exist. Every trade pays fees, and market orders pay slippage — the difference between the price you wanted and the price you got. Strategies that trade often are especially vulnerable, because those frictions compound with each transaction and can turn a paper-profitable system into a live loser.


