The PnL gap between an EA's Strategy Tester report and its first month of live trading is rarely a spread problem. It is a tick generation problem. MetaTrader's backtesting engine does not replay the market — it reconstructs a plausible-looking intrabar path from four data points per minute and a static spread, then executes your orders against a price sequence that never happened. Every fill the engine grants you is, in the strict sense, fabricated. Understanding exactly how that fabrication is constructed — and why it is systematically favorable to the strategy under test — is the difference between a forward test that predicts live behavior and one that flatters it until capital is committed.
The Four-Tick Fiction Inside Every Minute Bar
MT4 and MT5 historical data stores price as one-minute OHLC bars. In the platform's native Every Tick mode, the engine generates a synthetic intrabar tick sequence by interpolating between exactly four price points per minute — Open, High, Low, Close. The interpolation algorithm starts at Open, walks the synthetic ticks up to touch High and down to touch Low (in an order chosen by a built-in heuristic), and finishes at Close. The number of intermediate ticks is governed by a bar-internal tick counter, not by anything that happened in the real market.
The official cap on this approach is documented: MT4 Every Tick mode caps natively at 90% modeling quality. That figure is not a measure of how realistic the fills are — it is the platform's own acknowledgement that roughly 10% of price movements are structurally absent from the test environment. Wick extremes that occurred between OHLC anchors, liquidity sweeps that printed and reversed inside a single minute, and the genuine sequence of micro-pullbacks that determine whether a stop-buy actually triggers before a take-profit are all reconstructed by a deterministic interpolator that has no information about any of them.
The practical consequence is that a pending order placed inside a candle is evaluated against a synthetic price path that touches High and Low in a clean, monotonic walk. Real intrabar price action almost never moves that way. The engine's path is favorable on average because it is geometrically simple — it visits every level the order needed to be triggered, in the order most likely to trigger it.
Bid-Only Data and the Fixed-Spread Illusion
The structural root of the problem sits below the tick generator. MT4/MT5 OHLC historical data stores only bid prices. Ask is reconstructed synthetically as Bid plus the last known spread. The candle you see on a MetaTrader chart is a bid candle, not a midpoint candle, and the Ask leg used to fill buy orders in the tester is a derived quantity, not a recorded one.
That derivation is then frozen for an entire minute. In MT4's native Every Tick mode, the spread for each one-minute bar is taken from the first tick of that minute and held fixed for all 60 seconds. The MQL5 documentation states the rule plainly:
The spread used is not modeled but is taken from historical data. If the spread is less than or equal to zero, then the last known spread is used.
And a long-running thread on the MQL5 Strategy Tester forum frames the per-bar behavior the same way:
The spread for 1 minute OHLC is fixed for that 1 minute — only the first tick carries valid spread data.
Real-world spreads do not behave that way. EUR/USD trades at 0.1–0.2 pips during the London–New York overlap, but widens to 2–3 pips on NFP and FOMC releases. XAUUSD runs 1.5–3 points in normal conditions and balloons to 20–30+ points on CPI and FOMC prints. During flash events — the AI-triggered liquidity sweeps that have become more frequent in 2026's elevated-volatility regime, with DXY near 98 — majors can move from 0.2 pips to 12 pips in milliseconds. None of that is in the test. The backtest sees the first tick of the minute and applies it 60 times.
MT5's Two 'Every Tick' Modes Are Not the Same Test
MT5 introduced a second mode specifically to address the synthetic tick problem — and most retail EA developers conflate the two. The dropdown labels are Every tick and Every tick based on real ticks. Only the latter uses actual bid/ask tick history pulled from the broker server. The former still interpolates OHLC bar data using the same logic as MT4.
The MQL5 forum has documented the divergence with unusual candor:
Testing the same EA on Every Tick vs. Every tick based on real ticks can produce completely opposite results — the same EA can show big profit on synthetic ticks and a loss on real ticks.
This is the headline diagnostic for any EA that has only ever been tested in synthetic-tick mode: the result is not a backtest of the strategy, it is a backtest of the interpolator's behavior on the strategy. Two further engine assumptions compound the gap. MT5's Delay parameter defaults to zero, while live brokers execute in 50–200ms — and the delay setting only simulates network latency, not the broker's internal matching time. And MT4's optimizer uses a different RNG seed per optimization pass when generating synthetic ticks, meaning the same parameter set tested twice may produce different fill paths. Optimization results are not reproducible at the engine level, which silently undermines every walk-forward conclusion drawn from them.
The PnL Damage: From Theoretical to Documented
The execution gap is not academic. The performance decay from backtest to live is now well enough characterized to be priced into any honest validation plan. The current industry baseline is a 20–50% performance reduction when an EA crosses from backtest to live in 2026 — a strategy showing 15% annual returns in test routinely delivers materially less once realistic execution applies. The win-rate decay is sharper still: EAs showing a 70% win rate in backtest commonly settle near 55% live, with slippage cited as the primary explanation.
The worst documented case in the public record this year comes from XAUUSD. An April 2026 MQL5 blog post tracked an ultra-fast scalper that reported a backtest profit factor of 6.75 and a drawdown of 12%. The live run delivered a profit factor of 1.66 — a 75% reduction — with drawdown widening to 41%. The MQL5 author's summary is the line every EA developer should pin above their monitor:
The gap between simulated and real execution conditions is often underestimated; this gap is the primary reason many otherwise valid strategies never translate into live profitability.
For scalping systems the math is even more brutal because the fill cost is a higher fraction of the target. A strategy with an average win of 10 pips and a realistic 1.5-pip slippage on entry and exit loses roughly 30% of net profit to execution alone — before any spread widening on news. A system whose backtest reports an edge smaller than that figure is, in expectation, a flat strategy with a flattering tick path.
Key Risk for EA Developers: Scalping and grid systems are the most exposed to the synthetic-tick problem because their target distance is comparable to the interpolation error. A 6.75 backtest profit factor collapsing to 1.66 live is not a slippage story — it is a story about the engine generating fills the live market would not have granted. If your strategy's edge is smaller than the documented execution gap on its instrument class, the edge does not exist outside the tester.
A Tiered Diagnostic: Which Mode for Which Strategy
Not every EA needs the most expensive tick environment. The choice should be driven by signal frequency and target distance, not by habit. A defensible tiering looks like this:
- Daily and H4 trend systems with targets above 50 pips: MT5 Every Tick on cleaned OHLC data is acceptable as a first pass. The interpolation error is small relative to the target, and the spread assumption matters less than the trend regime assumption.
- H1 and M30 systems with targets of 20–50 pips: Run Every tick based on real ticks in MT5, or use Tick Data Suite 2 / TickStory on MT4 with imported third-party tick history (Dukascopy or OANDA free tick feeds). Modeling quality should be at the 99% range, not the 90% cap.
- Scalpers, grids, and any system with targets below 20 pips: Real-tick mode is mandatory, variable spread must be loaded from broker-side data, and the Delay parameter must be set to a non-zero value calibrated to the live broker's measured execution time. Anything less is a confirmation exercise, not a test.
Traders who want to visually verify the same OHLC-versus-tick distinction in a different platform can use TradingView, whose Pine Script strategy tester exposes the bar magnifier and recalculate-on-every-tick toggles that map directly to the MetaTrader synthetic-versus-real-tick choice; toggling them on the same chart makes the interpolation effect visible without any engine modification. The point is not platform preference — it is that the OHLC fill assumption is shared across mainstream retail testers, and seeing it in two environments tends to dislodge the assumption that the problem is unique to MetaTrader.
Building the Forward-Test Cross-Reference
The single most useful check, once an EA has cleared its preferred backtest mode, is a structured forward-test cross-reference run before any capital allocation. The protocol is unambiguous: deploy the EA to a demo account on the broker the live system will use; run it on the same symbol set, same timeframe, and same parameters as the backtest; record every trade with timestamp, requested price, executed price, slippage, and spread at execution; then compare the live distribution of those quantities against the backtest's implied distribution.
Three numbers matter. First, the average realized spread versus the spread assumed by the test — anything more than a 30% mismatch invalidates the cost model. Second, the requested-versus-executed-price gap on entries, which exposes the synthetic-tick favorability directly: in backtest the gap is structurally near zero, in live it is the slippage distribution the strategy actually faces. Third, the fill rate on stop and pending orders, which is the cleanest test of whether the interpolated path was granting fills the live market would not. A clean forward test should match the backtest within tolerance on all three.
The community consensus on modeling quality is worth taking literally. As a frequently-cited modeling quality guide phrases it:
At 90% [modeling quality], you get rough approximations that inflate profits and mask risks; switching to 99.9% makes backtests mirror live trading closely.
The audit cost is hours of demo time and a spreadsheet. The cost of skipping it — as the documented Gold scalper case shows — is the difference between a profit factor that justifies a live deployment and one that should have stopped the project. The MetaTrader Strategy Tester is honest about what you ask it to compute. The default settings simply ask it to compute the optimistic case.
Ready to build and test your own strategies?
FX Strategy Analyzer's EA Analyzer Pro helps you stress-test MT4/MT5 strategies across historical regimes — built by traders, for traders.
Open EA Analyzer Pro →Track live market conditions alongside your EA performance. TradingView gives you professional-grade charts and real-time data — new subscribers receive $15 toward their first plan.
Open TradingView Charts →