A backtest runs your rules over historical data to estimate whether they have an edge. Done honestly, it is invaluable; done carelessly, it is worse than useless, because it manufactures false confidence. The entire value of a backtest depends on avoiding the ways it can lie to you.
Charge real costs
The single most common way backtests lie is by ignoring trading costs. Every trade pays fees and slippage; a strategy that looks brilliant gross can be a guaranteed loser net. You must charge realistic fees and slippage on every fill. This project's own research is a textbook case: strategies that looked positive became negative once ~11 bps of round-trip cost was applied — the costs were the whole story.
The traps that fake an edge
- Lookahead bias — using information that wasn't available at the time (e.g. the bar's close to decide a trade within that bar).
- Overfitting / curve-fitting — tuning parameters until the past looks perfect; it won't repeat.
- Survivorship & cherry-picked windows — testing on one lucky period and ignoring the rest.
- Ignoring fees, slippage, and realistic fills — the costs that turn winners into losers.
The honest standard
A trustworthy backtest charges full costs, avoids lookahead, uses sensible (not over-optimised) parameters, and — above all — reports drawdown alongside returns. But even a great in-sample backtest is not proof: it only shows the rules fit the past. Whether they work on data they have never seen is the next, harder test — forward / out-of-sample validation.