NuvoraSyncNuvoraSync
Educational guideBacktesting & strategy testing8 min readUpdated June 2026

Why Live EA Results Differ From Backtests

An Expert Advisor that looks excellent in the MetaTrader Strategy Tester rarely reproduces those numbers on a live account — and the gap is usually structural, not a bug. The tester fills every order instantly at recorded prices, while a live account trades through real spreads, slippage, network latency and the occasional disconnection. The sections below walk through the six main sources of divergence, with numbers, and ends with a practical method for comparing live results against a backtest on equal terms.

Key takeaways

  • A backtest fills every order instantly at recorded prices; live execution adds variable spread, slippage and latency to every single trade.
  • The tester's data is not your live feed: different ticks, different filtering and a different server clock produce different signals.
  • Small per-trade costs compound — an extra 0.7 pips of friction per round trip can remove most of a scalping EA's measured edge.
  • Downtime the backtest never has — VPS restarts, disconnections, missed ticks — makes live and simulated trade lists stop matching.
  • The same EA on two broker accounts produces two different track records; neither account is malfunctioning.
  • Compare fairly: re-test over the exact live window, track each EA by magic number, and treat some degradation as the base case.

One EA, two execution worlds

A backtest and a live account run the same code through entirely different machinery. The MetaTrader Strategy Tester replays stored price history: every order fills instantly, at the recorded price, with whatever spread the model assumes. A live account sends each order across a network to a broker server, where it fills against the liquidity that actually exists at that moment.

The backtest path: every step is deterministic, instant and never rejected.
The live path: the same signal passes through latency, real liquidity and a live spread.

Each section below is one place where those two paths separate. Individually the differences look small; across hundreds of trades they compound into the gap most EA users eventually notice.

Execution friction: spread, slippage, latency

The tester’s biggest simplification is cost. Live spreads breathe: EUR/USD might average 1.0–1.5 pips through the London session, widen to 3–4 pips around rollover, and jump far higher into news — while many backtests apply a single fixed spread to years of trades. Slippage is the second cost: a market order fills at the price available when it reaches the server, not the price the EA saw when it decided. On instant-execution accounts the same gap surfaces as a requote instead — a rejection the tester never issues.

How 0.7 pips of friction halves a scalping edge

  • Backtest: 2,000 trades on EUR/USD, average profit 1.2 pips per trade after a fixed 1.0-pip spread.
  • Live spread averages 1.4 pips → 0.4 pips of extra cost on every trade.
  • Average slippage on entries and exits: 0.3 pips per round trip.
  • Live expectancy ≈ 1.2 − 0.4 − 0.3 = 0.5 pips per trade.
  • Same code, same signals — roughly 60% of the edge is gone before the market does anything different.

Latency sits underneath both effects: the longer an order travels, the further price can drift before the fill. How slippage arises is covered in the slippage guide, and the network side in the latency guide.

The data was never your data

A backtest runs on stored history — downloaded bars or, at best, the broker’s recorded tick archive. Your live account runs on the feed streaming right now, filtered and aggregated by your broker in its own way. Even the most realistic tick mode replays one broker’s past feed, which is not guaranteed to match the ticks your terminal receives this week: highs, lows and tick counts all differ slightly, and an EA that triggers on exact price touches will fire on different bars.

Server time is the quiet one. Daily candles open and close on the broker’s server clock, and many EAs carry time filters such as “trade only 09:00–18:00”. Backtest on data stamped in one timezone, then run live on a server using another — or one that handles daylight saving differently — and the EA is literally trading different hours and reading differently shaped daily bars.

News periods magnify everything

Around scheduled releases — central bank decisions, inflation prints, employment data — liquidity thins out exactly when price moves fastest. Spreads that normally sit near 1 pip can widen to 5–10 pips for a few minutes, and live fills can land several pips from the requested price. The tester replays those same minutes with its usual assumptions: recorded prices, modelled spread, instant fills.

The result is asymmetric. An EA that happens to trade through news collects its most generous fills in the backtest at precisely the moments live execution is worst. Breakout entries and tight stops placed around volatility are the most exposed.

The backtest never goes offline

A simulation has perfect uptime. A live setup does not: the VPS reboots for an update, the terminal loses its connection, the broker server has a maintenance window, or ticks simply stop arriving for a stretch. Each interruption edits the live track record in a way no simulation reproduces:

  • A missed entry removes a trade the backtest counts — the two trade lists stop matching from that point on.
  • A missed exit is worse: the EA holds a position it would have closed, turning a few offline minutes into a materially different outcome.
  • Even a few minutes of downtime per week is enough to make live results diverge trade-by-trade from any test run.
EAs that actively manage positions — trailing stops, partial closes, basket logic — are hit hardest, because downtime affects trades that are already open, not just new signals.

Two accounts, one EA, two track records

Run the identical EA, settings and period on accounts at two different brokers and the results will not match — sometimes dramatically. Each broker assembles its own price feed, applies its own spread or commission model, runs its own server clock and enforces its own execution rules.

Hypothetical example: the same EA on two broker accounts over the same month
VariableAccount AAccount B
EUR/USD pricing1.1-pip average spread, commission per lot1.6-pip average spread, no commission
Server timezoneGMT+3 — five daily candles per weekGMT — includes a short Sunday candle
Tick feedDenser feed; marginal signals triggerSmoother feed; some signals never fire
Stop rulesStops accepted at market distanceMinimum stop distance of 3 pips enforced

None of this is a malfunction — the EA is responding to genuinely different inputs. It is also why a results screenshot from someone else’s account, even running the same EA, says little about what yours will record.

The market moved on after the test window

Every backtest ends where its data ends, and live trading begins exactly there — in conditions the test never contained. Volatility regimes shift, ranging pairs start trending, spread structures change. An EA whose parameters were tuned on the test window, deliberately or just by keeping “what worked”, is to some degree fitted to a market that no longer exists.

This source of divergence has nothing to do with execution: even with perfect fills and identical data, a strategy can simply meet a different market. It is the main reason some degradation between backtest and live performance is the base case to plan for, not a surprise to investigate.

How to compare live and backtest fairly

A fair comparison removes every mismatch you can control, so that whatever remains is real divergence:

  • Re-run the backtest over the exact live window — same symbol, timeframe, settings and deposit — and compare against that, not the original multi-year test.
  • Give every EA a unique magic number and filter the live history by it, so one strategy's results are not blurred by anything else on the account.
  • Compare distributions, not headlines: trade count, win rate, average win and loss, profit factor. A different trade count means missed or extra trades, not just different outcomes.
  • Measure the friction directly: average spread paid and slippage per trade on the live account versus what the backtest assumed.
  • Decide in advance how much degradation is acceptable — for example, a review trigger if live expectancy falls below half of the backtested figure.

Both halves of the comparison come from your own records: the free Backtest Analyzer reads the Strategy Tester report, and the live side comes from your own MetaTrader account history, filtered per magic number over the matching window. When the same metrics sit side by side, the question changes from “why is live worse?” to the answerable one: which specific difference — cost, data, downtime or market — accounts for the gap.

Frequently asked

How much worse should live results be than the backtest?

There is no universal number — the gap scales with how cost-sensitive the strategy is. An EA averaging 30 pips per trade barely notices an extra 0.5 pips of spread and slippage, while a scalper averaging 1.5 pips can lose most of its edge to the same friction. Treat the backtest as a ceiling produced under idealized costs.

Does the 'Every tick based on real ticks' mode close the gap?

It narrows the data side of it, because the tester replays the broker's stored tick history instead of bars interpolated from minute data. It still cannot simulate live latency, requotes, news slippage or downtime — a real-tick backtest remains an idealized execution environment.

My EA is profitable in the tester but loses live. Is the broker doing something wrong?

Usually not. Variable spreads, slippage around news, latency and a different tick feed explain most of the gap, especially for short-term strategies. Before drawing conclusions, measure what you actually paid on your own account — average spread and slippage per trade — and compare it with what the backtest assumed.

How do I isolate one EA's live performance on an account that runs several?

Give each EA a unique magic number and filter the trade history by it. That turns one blended account history into separate per-strategy track records, which is the only clean way to compare a specific EA against its own backtest.

Related guides

Related free tools

Free, no login required.

Related NuvoraSync features

Sources & further reading

Want to analyze your own MetaTrader account data automatically?

NuvoraSync is a read-only MetaTrader journal and analytics workspace. Connect MT4 or MT5 once and your trades, drawdown and performance update on their own — no manual entry, no signals, just your own data.

This article is for educational purposes only. It does not provide trading signals, investment advice, financial recommendations, broker recommendations or trade execution. Backtest results are historical simulations and do not predict future performance.