The most expensive moment in algo trading
You have an EA whose backtest shows 150% return at 12% drawdown. You go live. Three months later the account is in the red. The EA is not "broken" — the backtest simply simulated a world that does not exist. This guide dissects the concrete mechanisms where backtest and reality diverge.
This guide complements the backtesting and forward-testing methodology: that one covers how to test properly, this one covers why good backtests still fail live.
Reason 1: Over-optimisation (curve-fitting)
The most common cause. The more parameters and optimisation passes, the higher the probability that the EA fits the past perfectly by chance — without a real edge for the future.
Symptoms:
- A sharp performance peak at one exact parameter combination (instead of a broad plateau).
- Excellent in-sample results, weak out-of-sample results.
- The EA only works on one pair, one timeframe, one time window.
Curve-fitting is insidious because it looks like a great EA in the backtest. Only a clean out-of-sample and forward test exposes it.
Reason 2: Slippage
In the backtest the order fills at the requested price. Live, you get the next available price — and on fast moves it is worse.
- Market orders slip especially around volatility and news.
- Stop-loss orders fill at the next price after triggering, not exactly at the stop.
- For scalping EAs with a 5-pip target, even 1–2 pips of slippage per trade eats the edge.
The mechanics in detail are in the What is slippage? guide. Key point for testing: set a realistic slippage value in the tester — not zero.
Reason 3: Spread widening
Many backtests use a fixed, often minimum, spread. In reality the spread is variable and widens exactly when it matters:
- around news (NFP, rate decisions),
- at market open/close and during the Asia session,
- in illiquid phases and at volatility spikes.
An EA tested at a 0.8-pip spread that pays 2–3 pips live loses exactly that difference — on every trade. So test with the real average spread of your target broker, not the advertised minimum. The broker comparison for EA/algo trading shows which brokers are honest here.
Reason 4: Requotes and order rejections
With market-maker and some hybrid brokers, an order at the requested price can be rejected and a new price offered (a requote) — or execution is delayed. In the backtest this phenomenon does not exist; every order fills instantly.
For EAs with time-critical entries that means the trade that produced the profit in the backtest either does not execute at all live or fills at a worse price. ECN/STP brokers with direct execution substantially reduce this problem.
Reason 5: Broker execution and latency
The backtest knows no network latency, no server processing time, no differences between brokers. Live, the execution chain decides:
- Latency between the EA, the VPS and the broker server — critical for fast EAs.
- Execution model (market maker vs ECN/STP) influences the direction of slippage and requotes.
- Server time and symbol specifications can differ from the tested environment.
A latency-sensitive EA belongs on a VPS with low latency to the broker data centre — otherwise it runs in a different reality live than in the test.
Reason 6: Poor tick data quality
The backtest is only as good as its data. MT4 interpolates ticks from M1 bars; broker-supplied data often has gaps or low modelling quality. This leads to:
- "phantom" fills at prices that were never actually tradable,
- underestimated intrabar moves that would have hit your stop live,
- overly optimistic results, especially for scalping and grid EAs.
For reliable tests you need genuine tick data (e.g. 99% tick data from an independent import) — details in the testing methodology.
Closing the gap: from backtest to live reality
| Backtest assumption | Live reality | Countermeasure | |---|---|---| | Fixed minimum spread | Variable, wider spread | Test with average spread | | Fill exactly at price | Slippage | Realistic slippage in the tester | | Instant execution | Requotes, latency | ECN/STP broker, VPS | | Perfect ticks | Data gaps | Import 99% tick data | | Optimal parameters | Regime change | Out-of-sample, walk-forward |
The only reliable test is a forward test with real money in micro-lots: only there do slippage, real spread and execution become visible. Plan for at least 100–300 live trades before trusting the EA.
Conclusion
An EA rarely fails live because of a single mistake but because of the sum of underestimated friction: curve-fitting masks the missing edge, while slippage, spread widening, requotes, latency and poor tick data erode the backtested performance piece by piece. Anyone who tests realistically and forward-tests consistently closes this gap — and finds out whether the edge is real before the account delivers the answer.