EnglishNederlandsPortuguesEspanolDeutschFrancais

MT5 Backtest Results Do Not Match: Why It Happens

By 6 min read Backtesting Published:

You run an expert advisor in the MetaTrader 5 strategy tester, then run what you believe is the same logic in Python, in TradingView, or in a second MetaTrader install, and the two curves do not agree. Sometimes the second run does not even take the same trades.

A backtest is not a recording of the past. It is a simulation, assembled from price data plus a stack of assumptions about how orders fill and what they cost. Once a single trade opens or closes at a different moment, everything after it drifts, because position state and balance are different from there on.

Why do MT5 backtest results not match another platform?

MT5 backtest results do not match another platform because the two testers are not simulating the same market. They differ in the tick path inside each bar, in how they model spread, in whether commission and swap are charged, in the symbol specification they load, and in the time zone the data is stamped with. Any one of those changes which orders fill and when, and a strategy that reacts to its own fills diverges from there. The useful move is not to decide which platform is right, but to line up the assumptions that disagree.

Does the tick model change backtest results?

The tick model changes backtest results, and it is one of the most common reasons two testers disagree. The MT5 strategy tester offers several modelling modes, from open prices only, through one minute bars, to every tick, to every tick based on real ticks, and each one invents a different path between the open and the close of a bar.

That matters whenever price could have touched more than one of your levels inside the same bar. If a stop and a target both sit within one bar's range, the tester decides which was hit first from a modelled path rather than from what actually happened. Scalping, grid logic, breakeven moves and trailing stops are sensitive to this, while trades held for days are far less affected. Real ticks are also only as good as what your broker stored, and where that history is thin the tester falls back to ticks generated from minute bars.

How does spread modelling change a backtest?

Spread modelling changes a backtest by changing the cost of every entry and every exit, and MT5 gives you more than one way to set it. The tester can use the broker's current spread captured when the run starts, or a fixed value in points that you type in, and on real tick data the spread comes from the ticks themselves. Those are different cost assumptions, and they do not produce the same result.

The gap widens where spread is least stable:

If your external test used one flat spread and MT5 used recorded spread, you are comparing a strategy against an idealised version of itself.

Do commission and swap explain part of the difference?

Commission and swap explain part of the difference more often than traders expect, because both testers can be silently wrong in opposite directions. MT5 charges commission from the symbol specification, so if your broker settles commission outside the symbol, or the symbol you downloaded carries none, the test never charges it and the curve is flattered by a cost you will still pay.

Swap is worse, because the conventions vary:

Why does the same EA test differently at two brokers?

The same EA tests differently at two brokers because the symbol specification is part of the strategy. Contract size, tick size and tick value, digits, volume limits and step, stop level, freeze level, allowed filling modes and session hours are all attached to the symbol, and they differ from broker to broker even when the ticker looks the same.

Two traps recur:

Compare the two specifications field by field before concluding that a strategy behaves differently, and check what your broker actually offers on the broker list.

What does the strategy tester assume about execution?

The strategy tester assumes a friendlier market than the one you trade in. It fills at the requested price, never requotes, never breaks an order into pieces, and applies no latency unless you switch on its execution delay setting. The only orders it turns down are the ones that break the symbol's own rules, such as a stop placed inside the stop level.

On a funded account none of that is fixed. Orders take time to reach the server, price can move inside that window, rejections happen, and larger volume may fill in pieces at different prices. The distance between the tester's execution model and your broker's execution is not a defect in the software; it is the part of the result you have not measured yet.

Does time zone or DST affect the results?

Time zone and daylight saving affect the results even when every other setting matches. The server time offset decides where each daily bar starts and ends, so it silently redefines every daily high, low, open and close your indicators are built on, plus every session filter in your code.

Daylight saving makes that offset moving rather than fixed. Brokers do not all follow the same DST calendar, and those that do switch on dates set by their own region, so the gap between two data sets can change part way through the year. If your external test used a different reference time, your daily levels sat on different bars for part of the history, and that alone produces a different set of trades.

Is a mismatch a bug or information?

A mismatch is information, and usually worth more than a matching result would be. A strategy that survives a fair tick model, recorded spread, real commission and swap, and a shifted session boundary does not depend on a modelling convenience for its edge. One that only holds up in the friendlier setup has told you where that edge came from.

Treat the comparison as a test in its own right:

  1. Fix the data first. Same symbol, same history source, same date range, same reference time.
  2. Move to the most realistic tick model and rerun before changing anything else.
  3. Switch spread from a fixed value to recorded spread, and note what changes.
  4. Confirm commission and swap are actually being charged in both runs.
  5. Line up the two symbol specifications and resolve every field that differs.
  6. Rerun on a second broker's data and see whether the ranking of your settings survives.

If the result collapses at any of those steps, that step was carrying the performance. That is a finding, not a failure.

The same applies to anything you run on a funded account. The JPTC EA Hub runs on MT4 and MT5 on your own account at your own broker, so your broker's symbol specification, spread and execution are what it meets in practice, not the ones in a test file.

Once both tests agree, the question is whether the strategy holds up under honest assumptions. Our research notes cover the cost assumptions we apply before a result counts.

We pass your prop firm challenge

We run the challenge on your account with our own software and setfiles. You keep the funded account. No profit share on your payouts.

See how the passing service works
Pass your prop firm | JPTC Algo
See Results →
Risk Disclaimer

Trading forex and CFDs involves significant risk and is not suitable for all investors. Past performance does not guarantee future results. You should not invest money you cannot afford to lose. The content on this page is for informational purposes only and does not constitute financial advice. JPTradingCapital does not accept liability for any loss or damage arising from reliance on the information provided. Always conduct your own research before making trading decisions.