The MT5 Strategy Tester asks you to choose how prices are modelled before it runs anything. Two of the choices sound almost the same: Every tick and Every tick based on real ticks. They are not the same, and the difference decides whether your backtest saw the spread your broker actually quoted.
This article explains both, shows what each one did to our own tests, and says when the choice matters and when it does not. It is part of our guide to how to backtest an EA in MetaTrader 5, step by step.
The Five Modes
When we run the tester from a script, the mode is a number. This is the list from the header of our own test runner:
Model codes: 0 every tick (generated), 1 M1 OHLC, 2 open prices, 3 math, 4 every tick based on
real ticks. The report's History Quality still says what was actually delivered.
- Open prices only runs your EA once per bar, on the bar’s open. Fast, and only honest for an EA that genuinely decides once per bar.
- 1 minute OHLC gives the EA four prices per minute: open, high, low, close. Nothing in between.
- Math calculations runs no market at all. It is for optimising a function, not a strategy.
- Every tick builds a stream of ticks inside each one-minute bar. The path respects that minute’s open, high, low and close, but the moves inside it are generated.
- Every tick based on real ticks replays the ticks your broker’s server recorded, where it has them.
The last two are the ones worth comparing. The first three are shortcuts; you should know when you are taking one.
What “Generated” Means in Practice
A generated tick stream is a plausible path through a minute, not the path the market took. Two things follow.
The order of events inside a minute is a guess. If a minute touched both your stop and your target, the generated path decides which came first. For an EA with a 5-pip stop on M1, that guess is the result. For an EA that holds for half an hour, it is noise.
The spread comes from the bars. Generated ticks use the spread stored with each one-minute bar, not every quote the broker sent. One value per minute cannot carry a spike that lasted a few seconds — the kind that hits tight stops at the rollover or on a data release.
Real ticks fix both, because they are the recorded quotes, bid and ask, in the order they arrived.
The Catch: Real Ticks Only Exist Where Your Broker Kept Them
“Every tick based on real ticks” is a request. If the broker’s server has no recorded ticks for part of your window, the tester generates them for that part and carries on without stopping.
Our broker’s tick history starts on 2 January 2026. So when we run our Tokyo Fix AUDJPY EA in real-tick mode over 2019–2026, the report says 8% real ticks; over 2010–2018 it says 0%. The mode was the same. The data was not. How to read that line is covered in MT5 History Quality: what the percentage in your report means.
In practice, that means most long backtests are “every tick” tests whatever you select, with a short real-tick tail at the end. Choosing the real-tick mode is still right: it uses real data wherever real data exists. Just do not describe the whole result as a real-tick result.
What It Did to Our Results
We measured the difference instead of assuming it.
A 280-trade M15 test moved by 2 trades and 0.00 in profit factor between generated ticks and partly real ones. For an EA that decides on 15-minute bars, the tick path inside a minute barely touches the result.
The Tokyo Fix EA enters six seconds after the 09:55 fix and exits 25 minutes later. When we tested whether that six-second delay mattered, it changed the total by −$0.61 across 713 trades in two windows, and on generated ticks it had no detectable effect either way. Our research note on fix-time flows put the judgement plainly:
History quality 7% real ticks (real ticks exist from 2026 only); the rest is generated from M1, which for a 25-minute hold on 0.3-pip spreads is adequate.
And the case that went the other way. When we planned our first screening of tight-stop setups, we switched the whole screen to real ticks before running it. The reason in the plan was one line: on a tight-stop system, real spread is most of the edge. A strategy whose profit is a few pips per trade cannot be judged on smoothed spreads.
Which One Should You Use?
Use Every tick based on real ticks by default. It loses nothing when real history is missing, because it falls back to generated ticks anyway, and it uses the broker’s quotes wherever they exist. It is the default in our own runner.
Then decide how much to trust the generated part, by strategy type:
- Stops and targets of a few pips, M1 entries, or an edge close to the spread: treat the generated portion as untested. Judge the strategy on the real-tick window, even if that window is short, and say that it is short.
- Holds of tens of minutes or more, entries on closed bars, spreads well below the target: generated ticks are adequate. Our own measurements put the difference at noise level for these EAs.
- Anything in between: run both and compare. Two runs of the same EA, one generated and one real-tick, over the same recent window, will tell you in an afternoon whether your strategy is sensitive.
Always Label the Result
Whichever mode you use, write it next to the number. Every backtest we publish carries its tick source: EveryTick for fully generated history, Mixed with a percentage when part of it was real. You can see both on the Tokyo Fix AUDJPY page, preset 0.3.4: 210 trades at PF 1.37 on generated ticks for 2010–2018, and 503 trades at PF 1.49 on mixed ticks for 2019–2026.
A profit factor without its tick source is half a sentence. The other half is what the test was allowed to see.
评论