Backtests usually fail live for five reasons: curve fitting to past noise, spread and commission not being modelled, unrealistically optimistic fills, look-ahead bias where the test uses data it couldn't have known, and too few trades to be statistically meaningful.
The most common cause. Parameters get tuned until the past looks perfect, capturing noise rather than a repeatable behaviour. The tell: results collapse when you shift the date range slightly, or the optimal settings sit on a sharp peak rather than a broad plateau. Always prefer a setting from the middle of a stable plateau.
Spread, commission and swap are real and relentless. On gold at 0.01 lots a 30-point spread costs about $0.30 per round trip. A strategy with an expectancy of $0.20 per trade is profitable on paper and loses money in reality. If a backtest doesn't subtract costs, it is not a backtest, it's a fantasy.
Backtests often assume you get filled at your exact price with no slippage, even during news. Live, fast markets gap through levels and stops fill worse than requested. Conservative testing assumes the stop is hit first when a bar spans both stop and target.
Subtle and deadly: using information the strategy couldn't have had at that moment. A classic version is computing a range using the current bar and then trading a 'breakout' of that range — mathematically impossible in real time. We found exactly this bug in our own momentum logic, and it had silently disabled the setup entirely.
Thirty trades tells you almost nothing; the range of luck is enormous. You want hundreds of trades across different regimes before treating a result as evidence rather than an anecdote.
Somewhat worse is normal, mainly from costs and slippage. Dramatically worse usually means curve fitting or a modelling error.
Always. Excluding it flatters every result and is the single most common way thin edges look profitable.
Using data in a test that wouldn't have been available at that moment in real time — it makes impossible trades look profitable.