Backtests That Match Live (More Often): The Practical Checklist
Spread, slippage, latency, session rules, and the common data traps that create false confidence.
Every trader who has moved from backtest to live trading has experienced the gap: the strategy that returned 38% annualised in testing delivers 20% (or less) with real money. Studies across institutional and retail trading consistently show that backtest performance overstates live results by 30–50%, sometimes more. The gap isn't random — it's systematic, and most of it is preventable.

The five frictions that erode backtest returns
Understanding where returns disappear is the first step to closing the gap. Each friction is small individually — typically 0.01% to 0.1% per trade — but they compound across hundreds or thousands of trades per year.

1. Spread costs
Most backtests use a fixed spread or no spread at all. In reality, spreads vary by session (Asian session EUR/USD spreads can be 2-3x wider than London session), by volatility regime (spreads widen around news events), and by broker. A strategy that trades 10 times per day on EUR/USD with a typical 0.7 pip spread is paying roughly 7 pips per day in round-trip spread costs — that's about 1,750 pips per year, or roughly 17.5% on a standard lot at 100:1 leverage.
2. Slippage
Slippage is the difference between the price you expect and the price you actually get. Market orders in fast-moving markets routinely slip 0.5 to 2 pips on forex, and much more on less liquid instruments. Stop-loss orders are particularly vulnerable: they become market orders when triggered, and the triggering event (a price spike) is exactly when liquidity is thinnest. Backtests that fill stops at the exact stop price are systematically optimistic.
3. Latency
The time between your system generating a signal and the order reaching the exchange matters. On MT5, a retail trader might see 50-200ms of latency. For strategies that trade on breakouts or momentum signals, this means entering after the initial move — buying higher and selling lower than the backtest assumes. Higher-frequency strategies are more sensitive: a 100ms delay on a scalping strategy can turn a profitable system into a losing one.
4. Session and liquidity rules
Many strategies implicitly assume 24/5 liquidity, but real markets have dead zones. Sunday open gaps, end-of-day rollovers, holiday sessions with thin books, and swap charges at specific times all affect real execution. A backtest that shows a profitable trade opened at 23:58 server time might have been impossible to execute in practice due to spread widening or broker restrictions.
5. Data quality traps
- •Survivorship bias: Only testing on instruments that exist today ignores ones that delisted, giving an optimistic sample.
- •Look-ahead bias: Using data that wasn't available at the time of the trade decision. Common with indicators that repaint or adjusted close prices.
- •Stale data: Tick data with timestamps that don't reflect actual market availability. Especially common in crypto markets where exchange APIs have inconsistent timestamps.
- •Bar aggregation artefacts: On 1-minute or higher timeframes, the OHLC bar hides the intra-bar path. A strategy that uses high/low prices assumes they occurred in a favourable order, which may not be true.
The realistic backtesting checklist
- •Model variable spreads by session and volatility regime — not a single fixed value.
- •Add slippage of at least 0.5-1 pip for forex market orders (more for less liquid instruments). Double it for stop-loss fills.
- •Simulate execution delay of 100-200ms for retail setups; test sensitivity to 500ms.
- •Exclude trades in low-liquidity windows (first/last 5 minutes of session, holiday sessions, Sunday open).
- •Cap order size to 5% of average daily volume for the instrument.
- •Use tick data for strategies that trade on sub-1-minute signals. Bar data hides important execution details.
- •Run walk-forward validation: optimise on window A, test on window B, roll forward. Never test on the same data you optimised on.
- •Compare multiple runs with different slippage assumptions. If the strategy breaks at 1.5x your expected slippage, it's too fragile.
- •Paper trade for at least 2-4 weeks before going live. Compare fills, timing, and P&L against the backtest for the same period.
- •Document all assumptions explicitly. Every backtest should state the spread model, slippage model, commission rates, session rules, and data source.
Double your slippage assumption and re-run the backtest. If the strategy is still profitable with acceptable drawdown, it has a real edge. If it breaks, the "edge" was just the gap between your assumptions and reality.
Bottom line
You can't eliminate the backtest-to-live gap entirely, but you can shrink it to a manageable level. The traders who succeed with automation aren't the ones with the best backtest — they're the ones whose backtests were honest enough to survive contact with the market.