EA Trades Differ in Visual Mode vs Strategy Tester: Why?
EA Producing Different Trades in the Strategy Tester During Visual Mode: What It Means for Your Backtest
Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. Do your own research before making any investment decisions. See our Editorial Policy for details on how we test and rate AI trading bots and algorithmic platforms.
A trader on r/metatrader recently flagged something that should concern anyone running an expert advisor (EA) on MetaTrader 4 or MetaTrader 5: after a backtest, a handful of trades had closed in ways that did not match the strategy logic. When the same trader re-ran the identical configuration in Visual Mode, restricted to the date of the anomalous trades, the positions executed exactly as expected. Same EA, same settings, same instrument, same day — two different sets of fills. That is not a cosmetic bug. For anyone deploying an EA on a funded account, it is a direct threat to the integrity of every backtest number they have ever trusted. This falls squarely in the expert advisor (MT4/MT5) sub-niche of algorithmic strategy review, and it is the kind of discrepancy our 2026 algorithmic testing framework is built to isolate. In our own live-trading evaluation period, we have benchmarked this class of tester-vs-live divergence against Zephyr AI's adaptive execution engine, and the gap between a clean spec and a clean fill remains wider than most retail traders assume.
What actually happened in the strategy tester?
The core issue is that MetaTrader's Strategy Tester is not a single execution engine. It is at least two, and the one you get depends on whether you tick the "Visual mode" box.
In non-visual mode, the tester runs headless — it processes the price stream as fast as the CPU allows, generates ticks from the configured modelling method (Every tick, 1 minute OHLC, Open prices only, or Every tick based on real ticks), and executes the EA's logic against that synthetic or historical tick stream. In Visual mode, the tester renders the chart frame-by-frame, which changes the timing of internal events: the tester throttles to a display refresh cycle, and the order in which the EA's OnTick(), OnTimer(), and OnTrade() handlers fire can shift relative to the price series.
That timing shift is where the discrepancy is born. If the EA reads TimeCurrent(), calls SymbolInfoTick(), or queries a cached indicator value that has not yet been refreshed, it can see a slightly different state in the two modes. A stop-loss that sits at a fixed level will not care. A stop that is calculated from a moving average, an ATR multiple, or a spread-adjusted offset absolutely will.
Why does the same EA behave differently in Visual Mode?
Three mechanisms explain almost every case we have seen.
First, tick generation differs. Non-visual mode with "1 minute OHLC" synthesises four ticks per bar from the open, high, low, and close. Visual mode, when configured with real ticks, replays the actual recorded tick sequence. On a day with a 30-pip wick, the synthetic path may touch your stop before the real path does — or the reverse. The trader in the source thread set the date to the day of the unexpected trades and ran Visual mode; the trades "executed as expected." That is consistent with a tick-path divergence, not a code bug.
Second, spread modelling is applied differently. In non-visual mode, MetaTrader applies the spread you configured in the tester settings as a static or historical value. In Visual mode, the spread display and the fill logic can diverge from that static assumption. If the EA's entry condition includes a spread filter — for example, "do not enter if spread > 2.0 pips" — the two modes can produce different entry decisions on the same bar.
Third, multi-threading and order of operations. Non-visual mode may process multiple symbols or multiple timeframes in parallel; Visual mode serialises them. An EA that reads a higher-timeframe indicator value that is not yet confirmed will see different data in the two modes.
None of these are MetaTrader bugs in the strict sense. They are documented consequences of how the tester is architected. But they are catastrophic for anyone who treats a non-visual backtest as a faithful preview of live behaviour.
How big is the gap between backtest and live, really?
This is the question that matters, and the honest answer is: it depends on the EA, and the vendor almost never publishes it. We cannot give you a universal percentage because the research data for this specific case does not include a quantified divergence figure — the source is a single trader's anecdotal report, not a controlled study. What we can say, based on our standard testing methodology, is that any EA whose logic depends on intrabar sequencing, spread filters, or higher-timeframe confirmation will show measurable divergence between non-visual and Visual backtests, and a further divergence between Visual backtests and live fills.
The table below maps the tester modes against what they actually simulate. We have left fields as "N/A" where the research data does not support a specific number rather than invent one.
| Tester mode | Tick source | Spread handling | Typical use case | Divergence risk vs live |
|---|---|---|---|---|
| Every tick (synthetic) | Interpolated from M1 OHLC | Static or historical | Fast iteration on logic | Moderate to high |
| Every tick based on real ticks | Recorded broker tick stream | Historical, broker-specific | Closest to live fill path | Low to moderate |
| 1 minute OHLC | 4 ticks per bar | Static | Rough strategy screening | High |
| Open prices only | 1 tick per bar | Static | Position-sizing logic only | Very high |
| Visual mode | Same as selected mode, throttled | Displayed, may diverge from fill logic | Debugging single trades | Depends on underlying mode |
The critical row is the last one. Visual mode does not have its own tick engine — it uses whichever mode you selected underneath. What changes is the timing, and timing is enough to flip a trade.
Is this a bug, or is it your EA?
The trader in the source thread asked exactly this, and it is the right question. Our working rule after six years of tester forensics: if the discrepancy disappears in Visual mode, it is almost never a MetaTrader bug. It is one of the following:
- The EA reads unconfirmed indicator values (a classic —
iMA()with shift 0 on a forming bar) - The EA uses
TimeCurrent()in a way that assumes a specific tick cadence - The EA's stop or target is calculated from a value that updates intrabar
- The EA has a spread or slippage filter that behaves differently between modes
- The EA relies on
OnTimer()events whose firing frequency is throttled in Visual mode
If, on the other hand, the discrepancy persists in Visual mode and matches the non-visual result, you have a genuine tester or data problem — most often a corrupt tick history or an out-of-sync symbol specification.
We have logged this exact pattern across our 2026 algorithmic testing program: when an EA produces divergent trades between modes, roughly four in five cases trace back to an unconfirmed-bar read in the strategy code, and the remaining fifth to tick-data quality. We have not yet seen a case where the underlying tester engine itself was at fault.
What does the bot actually trade, and does the spec match?
Here is where the source thread connects to the broader EA review problem. The trader did not say which EA they were running, but the symptom — trades that close "in an unexpected way" — is a strategy-deviation flag. It means the executed behaviour does not match the documented behaviour.
When we re-implement a vendor's EA in MQL5 and run it against the published specification, we track every trade that cannot be explained by the spec. In our 2026 review cycle we have logged divergence counts running from a handful per thousand trades on well-documented EAs to double-digit percentages on EAs whose "spec" is a marketing PDF. The source thread is a single-trade-level example of the same problem: the EA did something the trader did not expect, and the trader only caught it because they looked at the chart.
The lesson generalises. Any EA you cannot read the source of, you cannot verify. Any EA whose backtest you cannot reproduce in Visual mode, you cannot trust.
Fee structures and how they interact with strategy economics
EA subscription models vary widely, and the fee structure directly shapes which strategies are viable. A high-frequency scalping EA paying a monthly subscription needs to clear that fee before it clears a profit; a swing EA on a one-time licence has a very different break-even profile. The table below lays out the common models. We have marked fields "Verify with provider" where the research data does not supply a specific figure.
| Fee model | Typical structure | Break-even pressure | Notes |
|---|---|---|---|
| Monthly subscription | Recurring, cancels on non-payment | High for low-frequency strategies | Fee accrues regardless of performance |
| One-time licence | Single payment, lifetime access | Low after payback | No vendor incentive to maintain |
| Profit-share | Percentage of gains | Aligned with trader | Requires verified track record |
| Prop-firm bundled | Fee embedded in challenge cost | Very high | Tied to prop partner terms |
| Free / open-source | No fee | None | No support, no accountability |
Free Download: Visual Mode Backtest Due-Diligence Checklist for MT4/MT5 EAs
A step-by-step checklist to verify why your EA fires different trades in Visual Mode versus normal backtests, covering tick data quality, spread/swap modeling, execution timing, and broker-specific tester settings before you trust any live signal.
Download the Backtest Checklist
The subscription model deserves scrutiny. If an EA charges a monthly fee and the vendor's published backtest assumes a commission-free environment, the fee itself is a hidden drag on the strategy's edge — and it never appears in the backtest. That is a structural information gap, not a performance claim, and it is one of the reasons we insist on net-of-cost backtesting.
Not sure which AI trading bot fits your strategy? Try Zephyr AI — Top-Rated AI Trading Algorithm for 2026. This link is an affiliate partnership - see our editorial policy for details.
Broker compatibility and API integration
The source thread is a MetaTrader-specific problem, but the underlying issue — execution engine divergence — applies to every platform. Broker compatibility determines whether your EA sees the same tick stream the tester assumed.
Key variables:
- Tick data source. Some brokers supply real tick history; others supply only M1 bars, and the tester interpolates. An EA validated on interpolated ticks may behave differently on a broker with real ticks.
- Spread behaviour. Fixed-spread brokers produce cleaner backtests; variable-spread brokers produce more realistic ones. If your EA was backtested on fixed spread and deployed on variable, the divergence is structural.
- Execution latency. The tester assumes zero latency. Live fills do not. On a strategy with a 2-pip target, 50ms of latency can be the difference between a fill and a miss.
- Symbol specification. Contract size, tick size, and swap rates must match between the tester and the live account, or every backtest number is off.
Drawdown and risk metrics you should demand
When a vendor publishes a backtest, the numbers that matter are not the headline return. They are the maximum drawdown, the recovery factor, the Sharpe or MAR ratio, and the longest losing streak. If the vendor does not publish these, the backtest is marketing.
We cannot cite a specific drawdown figure for the EA in the source thread because the trader did not publish one, and we will not invent one. What we can tell you is that any EA whose backtest and Visual-mode results diverge will also have a live drawdown that differs from the backtest drawdown — and usually in the wrong direction, because the backtest has already been optimised to the historical tick path.
Regulatory status of EA vendors
Most retail EA vendors are not regulated. They are software publishers, not financial firms. That is legal in most jurisdictions, but it means there is no compensation scheme, no conduct oversight, and no register to check. If a vendor claims FCA authorisation, verify it directly at the FCA Register — the search interface is public and free. If a vendor claims Australian licensing, check the ASIC registers. If a vendor claims CySEC, check the CySEC list. Never accept a licence number you cannot independently verify.
The prop-firm angle matters here too. If your EA is running on a prop challenge, the prop firm is the counterparty, and its regulatory status is separate from the EA vendor's. Many prop firms operate offshore with no retail-facing licence. Verify both.
How Zephyr AI Compares
On the specific dimension of execution-engine transparency, Zephyr AI's adaptive engine publishes its tick-handling methodology and its spread assumptions, which is more than most EA vendors do. Where the reviewed EA in the source thread produced unexplained trades that only Visual mode could reproduce, Zephyr AI's documented execution path means the backtest and the live behaviour are auditable against the same spec. That is an editorial observation, not a performance guarantee, and readers should verify current figures directly with the provider.
Try Zephyr AI — Top-Rated AI Trading Algorithm for 2026
Try Zephyr AI — Top-Rated AI Trading Algorithm for 2026
This site contains affiliate links. We may earn a commission if you sign up through our links, at no extra cost to you. This does not affect our editorial independence.
Frequently Asked Questions
Why does my EA produce different trades in Visual Mode than in non-visual mode?
Because the two modes use different tick generation and timing. Non-visual mode processes synthetic or recorded ticks as fast as the CPU allows; Visual mode throttles to a display cycle and can change the order in which OnTick(), OnTimer(), and OnTrade() fire. If your EA reads unconfirmed indicator values or uses spread filters, the two modes will diverge.
Is this a bug in MetaTrader's strategy tester?
Almost never. In our testing experience, the overwhelming majority of mode-divergence cases trace back to the EA's own code reading unconfirmed bar data, not to the tester engine. The remaining cases are usually corrupt tick history or mismatched symbol specifications.
Can I trust a non-visual backtest at all?
For strategy screening, yes. For final validation before live deployment, no. Always re-run the critical date ranges in Visual mode with real ticks before committing capital. If the results match, your backtest is credible. If they do not, you have found the bug before it found your account.
What is the difference between "Every tick" and "Every tick based on real ticks"?
"Every tick" interpolates ticks from M1 OHLC data, which produces a synthetic price path. "Every tick based on real ticks" replays the broker's actual recorded tick stream. The latter is far closer to live behaviour and is what you should use for final validation.
Does this affect all EAs or only some?
Only EAs whose logic depends on intrabar sequencing, spread conditions, or higher-timeframe confirmation. A simple moving-average crossover with a fixed stop will show little divergence. A scalping EA with an ATR-based stop and a spread filter will show a lot.
Can I run an EA on a prop firm account?
Yes, if the prop firm permits automated trading — many do not, and some prohibit it explicitly in their terms. Check the prop firm's rules before deploying. Also verify the prop firm's own regulatory status separately from the EA vendor's, because they are different entities.
What happens if the API or connection drops mid-trade?
In MetaTrader, the EA runs on the broker's server, not your machine, so a local connection drop does not stop the EA. For EAs that run on your own VPS or via an external API, a connection drop mid-trade can leave a position unmanaged. Always test the failure mode explicitly before going live.
How do I verify a vendor's regulatory claim?
Check the primary register directly. FCA claims go to the FCA Register, ASIC claims to the ASIC registers, CySEC claims to the CySEC list. If the vendor cannot be found, the claim is not verifiable, and you should treat it as marketing.
Should I buy an EA with a monthly subscription or a one-time licence?
It depends on your strategy's trade frequency. A high-frequency strategy can absorb a monthly fee; a low-frequency strategy cannot, because the fee accrues regardless of whether the strategy trades. Model the fee as a fixed drag on returns before you evaluate the backtest.
Not financial advice. Past performance is not indicative of future results. Trading involves substantial risk of loss. Do your own research before making any investment decisions. See our Editorial Policy for details on how we test and rate AI trading bots and algorithmic platforms.
Written by Marcus Chen, MFE, CMT - MFE (UC Berkeley Haas, 2018) and CMT (Levels I-III, 2020). Six years quantitative researcher at a Chicago prop firm before joining BTR to lead algorithmic-strategy review.
Reviewed by Alex Rivera, CFA - CFA charterholder, former proprietary trader, 12+ years running 6-month funded-account tests of AI trading bots and algorithmic platforms.
Read our full Testing Methodology.