Backtesting vs live trading: why results differ
A backtest almost always looks better than the live account that follows it. The backtest runs on clean history with perfect information and assumed fills; a live account faces costs, delays, partial fills and events no historical file captures. Knowing where the gap comes from is the first step to making a backtest useful rather than misleading.
1. Transaction costs
Brokerage, exchange fees, statutory charges and taxes apply to every real trade. On a strategy that trades often for small gains, costs can turn a positive backtest negative. A backtest is only realistic if these are modelled per trade at rates that match your actual account.
2. Slippage
Slippage is the difference between the price your signal assumed and the price you actually got. Backtests frequently assume you trade at the close of the signal bar; in reality you trade some moments later, often after the move that triggered the signal has already begun. Optimistic slippage assumptions are one of the most common reasons a live account underperforms its backtest.
3. Liquidity and fills
A backtest usually assumes your entire order fills instantly at one price. Live, a large order can move the market, fill in pieces at worse prices, or not fill at all. Thinly traded instruments and fast markets make this worse.
4. Latency
There is a delay between data arriving, your system computing a signal, the order reaching the broker, and the broker routing it to the exchange. For slow strategies this is negligible; for fast ones it can change which fills you get.
5. Data quality and survivorship bias
Historical data can contain bad ticks, gaps, incorrect adjustments for corporate actions, or a symbol list that only includes instruments that still exist today. Each of these can flatter a backtest in ways that will not repeat.
6. Look-ahead bias
This is the subtle one: using information in the test that would not have been available at that moment in real time — for example, an indicator that quietly uses the bar's close to decide an action taken at the bar's open, or a data field that is only finalised after the session. Look-ahead bias can make a useless strategy look excellent.
7. Over-fitting
If you try enough parameter combinations, some will fit the past well by chance. Those are unlikely to work going forward. Out-of-sample testing, walk-forward analysis and keeping the number of parameters small all help, but nothing removes the risk entirely.
8. Behaviour and operations
A backtest never gets nervous during a drawdown, never has an internet outage, never fat-fingers a config change. Live, the operator and the infrastructure are part of the system.
How to narrow the gap
- Model realistic per-trade costs and conservative slippage.
- Test on out-of-sample data and across different market regimes.
- Run sensitivity tests — vary parameters, costs and dates and see how fragile the result is.
- Then trade live with minimal size and compare live fills to the backtest before scaling.
They may not reflect actual trading conditions, and past performance does not guarantee future results. This article is educational and not investment advice. See the Risk & Regulatory Disclosure.