MT5 Every Tick Real Ticks: Backtest Accuracy Guide

Learn when and how to use MT5's Every Tick Based on Real Ticks mode for accurate backtesting, its limitations, and how it compares to other modeling modes.

mt5-every-tick-real-ticks-backtest-accuracy-guide

You've built an Expert Advisor that looks great in the Strategy Tester. Forward testing starts, and within a week the EA is bleeding money in ways your backtest never showed. If that sounds familiar, the problem might not be your logic — it's likely your modeling mode.

Most MT5 traders default to Every Tick Based on Real Ticks because it sounds like the most accurate option. And it is — but only under specific conditions. Misuse it, and you'll get results that are just as misleading as the fast 1 Minute OHLC mode, just slower to produce.

This guide breaks down what Real Ticks mode actually does, when it earns its slower runtime, and where it falls short. You'll also get practical tips for configuring the tester so your backtests match live trading as closely as possible.

What Every Tick Based on Real Ticks Actually Does

MT5's Strategy Tester gives you four modeling modes. They differ in how much price data the tester feeds to your EA during a simulated tick-by-tick pass:

Modeling ModeData SourceTick DetailRuntime
Every Tick Based on Real TicksActual tick history from brokerFull — every recorded tickSlowest
Every Tick (based on M1 data)Generated from 1-minute barsSynthetic — interpolatedMedium
1 Minute OHLCM1 bar open/high/low/close4 points per barFastest
Open Prices OnlyM1 bar open only1 point per barVery fast

In Real Ticks mode, the tester replays the actual tick stream your broker recorded for that symbol and period. Every bid/ask update, every spread widening during news, every gap — it's all fed into OnTick() exactly as it happened (or as close as the broker's tick history allows).

The other tick-based mode, Every Tick Based on M1 Data, takes a different approach. It reads the 1-minute bars and generates synthetic ticks between the open and close, using the high and low as boundaries. The result is a plausible price path, not the real one. The sequence of ticks won't match what actually happened, and the spread is typically fixed at whatever the symbol's current spread setting is.

That distinction matters more than most traders realize. If your EA checks bid/ask spread before entering, or uses SymbolInfoTick() to read current prices, the synthetic mode can give you a false sense of how often your conditions trigger.

When Real Ticks Mode Shines

Real Ticks mode is the closest thing to a time machine for your EA. It's the only mode that preserves the actual microstructure of the market — the order flow, the spread fluctuations, the brief price spikes that never show up on a 1-minute chart.

That makes it essential for strategies that depend on tick-level events. Consider these cases:

  • Scalping EAs that open and close positions within seconds or a few ticks
  • Spread-sensitive logic that filters entries when the spread widens beyond a threshold
  • Pending order systems that rely on price touching a level and then reversing — the exact tick sequence determines whether a stop or limit triggers first
  • News-trading EAs that need realistic gap behavior and volatility spikes

For these strategies, using 1 Minute OHLC mode isn't just imprecise — it's fundamentally broken. The tester only sees four prices per bar. It has no idea whether price hit your buy stop before or after the close, or whether the spread was 20 pips during a news spike.

I once debugged an EA that worked flawlessly in Every Tick (M1) mode but failed consistently in Real Ticks. The culprit? It placed a market order when Bid <= iLow(Symbol(), PERIOD_M1, 1). In synthetic mode, the generated ticks conveniently dipped to that low. In real ticks, the low was a single spike that lasted one tick — and the EA's logic was too slow to catch it. The synthetic mode was creating phantom signals that never existed in live trading.

How to Configure the Tester for Real Ticks

Getting Real Ticks mode to work properly isn't just about picking it from the dropdown. You need the right data, and you need to verify it's actually present.

Step 1: Download Tick History

Open the Strategy Tester (Ctrl+R), select your symbol, then click the Bars button in the toolbar. This opens the symbol's data history in the tester. You'll see tabs for Bars, 1 Minute, and Ticks. The Ticks tab shows how many recorded ticks are available for each date.

If the tick count is zero for the period you want to test, Real Ticks mode will either fall back to another mode or produce an error. You need to download the history first. In the Ticks tab, select the date range and click Download. Depending on your broker and the symbol, this can take a while — a year of EURUSD ticks is roughly 20–30 million records.

Here's a practical tip: don't try to download years of tick data at once. The download often times out or gets throttled by the broker. Instead, download in 3–6 month chunks. And remember, tick history is only available from the point your broker started recording it — that's typically 2015 or later for most brokers, sometimes much later.

Step 2: Verify the Data Quality

After downloading, check the tick data visually. In the Ticks tab, double-click a date to see the tick log. Look for gaps — periods where ticks stop for more than a few seconds during normal trading hours. Some gaps are normal (weekends, holidays), but unexpected gaps during a trading session mean your broker's tick history is incomplete.

Also check the spread behavior. If your broker's tick history shows a constant 0.5-pip spread on EURUSD for months on end, that's a red flag. Real spreads fluctuate. Some brokers only record bid ticks, or record them at a reduced frequency during low volatility.

Step 3: Set the Modeling Mode

In the Strategy Tester settings dialog (the gear icon), set Modeling to Every tick based on real ticks. You'll also want to check the Display options — enabling Spread visualization shows you the spread behavior during the test, which is useful for verifying the data looks realistic.

One setting that trips up many traders: the Deposit and Leverage fields. These don't affect tick data, but they do affect margin calculations. If your EA uses OrderSend with a lot size that depends on free margin, the backtest results will differ based on these settings. Match them to your live account.

The Catch: Real Ticks Isn't Always Better

Here's where I have to push back on the idea that Real Ticks mode is the "most accurate" and therefore always the right choice. It's the most detailed, yes. But accuracy depends on the quality of the underlying data — and that's where things get messy.

Broker Tick Data Is Not the Whole Market

Your broker's tick history reflects only the liquidity available to that broker's clients. It's not the global interbank market. If your broker has thin liquidity during Asian hours, the tick data will show wide spreads and slow tick rates. Another broker might show tighter spreads. The same EA tested on different brokers' tick data can produce noticeably different results.

I've seen this firsthand. An EA that showed a 2.5% monthly return on one broker's Real Ticks data dropped to 1.1% on another broker's data for the same period. The strategy logic didn't change — the market microstructure did.

Missing Tick Sequences

Some brokers record ticks at a reduced rate — one tick per second instead of every price change. This is especially common on less liquid symbols or during off-peak hours. The tester will still replay those ticks, but your EA might miss short-lived price levels that existed in the real market but weren't recorded.

You can check your broker's tick recording frequency by looking at the tick log timestamps. If you see long stretches with exactly one tick per second, the data is sampled, not complete. For most EAs, this is acceptable. For high-frequency strategies that react within milliseconds, it's a fatal flaw.

Runtime Cost

Real Ticks mode is slow. A year of EURUSD tick data can take 10–20 times longer to test than 1 Minute OHLC mode. For optimization runs with hundreds or thousands of passes, that's the difference between an overnight job and a week-long job.

My rule of thumb: use Real Ticks for final validation of a strategy you've already optimized. Use 1 Minute OHLC or Every Tick (M1) for the initial parameter sweep. Then take the top 5–10 parameter sets and validate them in Real Ticks. This gives you the accuracy where it matters without wasting days on the optimization grid.

Real Ticks vs Every Tick (M1): A Practical Comparison

The two "Every Tick" modes are often confused. Here's a concrete example that shows the difference.

Suppose your EA places a buy stop at 1.1050. The M1 bar for that period has an open of 1.1048, a high of 1.1052, and a close of 1.1049. In Every Tick (M1) mode, the tester generates ticks between 1.1048 and 1.1052, so your buy stop triggers. In Real Ticks mode, the actual tick data might show that price jumped from 1.1048 to 1.1052 in a single tick — your stop triggers, but at a much worse price because the slippage is modeled from the actual tick spread.

Or the opposite: the real tick data might show the high was hit on a single tick that lasted 5 milliseconds before price reversed. Your EA's OnTick() processing takes 50 milliseconds. In real trading, you'd miss that fill. In Real Ticks mode, the tester respects the tick sequence and your order doesn't fill. In M1 mode, the synthetic ticks are evenly spaced, so your EA has plenty of time to react and the order fills.

Neither result is "wrong" — they're just different assumptions about market conditions. The question is which assumption matches your live trading environment.

Worked Example: Testing a Spread-Filtering EA

Let me walk through a realistic scenario. You have an EA that only opens a position when the spread is 1.0 pip or less on EURUSD. You want to backtest it over the last six months.

In 1 Minute OHLC mode, the tester uses a fixed spread — whatever you set in the symbol's Specification tab, typically 10 points (1.0 pip) for EURUSD. The result: your EA trades constantly, because the spread is always exactly at your threshold.

In Every Tick (M1) mode, the spread is also fixed, but at least the tick sequence is generated. Your EA might trigger a bit differently due to the synthetic price path, but the spread filter essentially never blocks a trade.

In Real Ticks mode, the actual spread history is replayed. During London open, the spread might be 0.8 pips — your EA trades. During quiet Asian hours, the spread might be 1.4 pips — your EA sits out. The backtest now shows far fewer trades than the other modes, and the equity curve is different because you're not entering during high-spread periods.

Which result is correct? The Real Ticks one, almost certainly. But here's the twist: if your broker's tick data shows a constant 1.0 pip spread because it doesn't record spread variations, then Real Ticks mode gives you the same result as 1 Minute OHLC. The accuracy depends on the data, not just the mode.

Practical Tips for Real Ticks Backtesting

After years of using this mode, here are the habits that have saved me the most pain:

  1. Always check the "Bars" and "Ticks" counts in the tester before running. If the tick count for your date range is zero, you're not getting Real Ticks data

Want to build your own version?

Recreate similar entry logic, risk rules, and filters in TradingBotMaker—no MQL coding. Start free.

Community

Clap for the article and open comments only when you want to read them.

0 claps0 comments

Related articles