AlgoVerdict

Backtest vs Live: Why EAs Fail

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:

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.

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:

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:

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:

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.