Learn › EAs and automated trading
Why live results usually fall short of the Backtest, and how much to allow for
A great Backtest doesn't mean live trading will match it. The main causes: tick data quality, spread spikes, slippage and picking the best of hundreds of settings.
- A Backtest is a simulation, and its results depend heavily on the quality of the test data
- The same system tested on generated ticks versus real ticks can give results several times apart
- Slippage and spreads that widen in volatile moments are often not fully captured in a Backtest
- Picking the best of hundreds of settings usually gives numbers that look better than reality
- Measuring profit per trade and comparing it trade by trade with live results beats looking at total profit
A Backtest means letting an EA trade on past price data to see how a set of rules would have done. It is the best tool we have for weeding out rules that don’t work. But the number it gives is not what you’ll get when running live, and live results are usually lower. This article goes through the main causes one by one, with examples from our own gold tests.
1. Tick data quality
In the MT5 Strategy Tester (MT5’s backtesting tool), you can choose how price is simulated, for example:
- Every tick based on real ticks uses the real ticks the broker recorded
- Every tick generates ticks from candle data
- 1 minute OHLC uses only the open, high, low and close of each 1-minute candle
A tick is each single change in price. With generated ticks, the tester has to guess whether price hit the high or the low first inside each candle. Systems with a tight Stop loss, or a trailing stop that follows price closely, are affected by this guess the most.
An example from our tests: a breakout system on gold, M1 chart, exactly the same settings, the same period (1 Jan – 1 Sep 2026), 0.01 lot. Only the data mode changed.
| Data mode | Net profit | Trades | Profit factor |
|---|---|---|---|
| Generated ticks | +3,460.68 USD | 952 | 4.54 |
| Real ticks | +915.30 USD | 960 | 1.83 |
3,460.68 ÷ 915.30 ≈ 3.78, so the generated mode showed almost 4 times more profit, even though the rules were identical. (Profit factor is the total profit of winning trades divided by the total loss of losing trades.)
Another thing to check is how far back your test server has real ticks. On the server we use, real ticks start in 2026. If you test an earlier year, the tester generates ticks automatically. Check the messages in the Strategy Tester’s Journal tab to see from which date real ticks are used.
All results in this article are backtest results. They do not predict the future and are not returns you should expect.
2. Spreads that widen at certain times
Spread is the gap between the buy and sell price. In 1 minute OHLC mode, the tester uses the spread recorded for that candle, so it can’t see short spread spikes inside the candle.
In another of our test sets, we entered one gold trade a day with a 5-dollar Stop loss at 0.10 lot, using real 2026 tick data. Entering at 07:00 Thai time (UTC+7), which matched the server’s daily rollover, was worse than entering at 06:30, both for buying every day and selling every day. Example with a profit target of 6 times the SL:
| Rule | Enter 06:30 | Enter 07:00 |
|---|---|---|
| Buy every day | −150 USD | −962 USD |
| Sell every day | +751 USD | −2,364 USD |
Both sides got worse at the same time, so it isn’t about direction. Our guess is that the spread widened right after the rollover and hit the tight Stop loss, something 1 minute OHLC data can’t see at all.
3. Slippage
Slippage is when an order is filled at a different price from the one you asked for. It usually happens when price moves fast or around news, and it usually goes against you.
Most Backtests assume you always get the price in the data. Real trading doesn’t work like that. A system that enters with stop orders (pending orders that trigger when price breaks through a set level) while price is spiking will get more slippage than a system that enters when price is calm.
A practical way to think about it is in money per trade, not as an overall percentage. A made-up example:
- The Backtest averages 0.80 USD per trade
- If real slippage averages 0.30 USD per trade
- That leaves 0.80 − 0.30 = 0.50 USD per trade, which is 0.50 ÷ 0.80 = 62.5% of the original figure
A system that makes 5 USD per trade with the same 0.30 slippage keeps 4.70 ÷ 5 = 94%. So systems that make little per trade are much more fragile.
Before trusting a Backtest, divide the profit by the number of trades. If profit per trade is close to cost per trade, live results could disappear almost completely.
4. Picking the best of hundreds of settings
When tuning an EA (optimization), we try hundreds of setting combinations and pick the one that did best. The problem is that the best set on that data is usually partly best by luck. On new data, the luck part goes away. This is called overfitting: tuning so closely to the past that it doesn’t carry forward.
An example from our research: a rule that enters at the 61.8 Fibonacci level on gold was selected and tuned on 2026 data and was positive in that year. But when tested on 2025, which wasn’t used during selection, it lost 920 USD with a Profit factor of 0.86 (0.10 lot; 2025 ran on generated ticks, so data quality plays a part too, but the positive result from the selection year did not carry over).
In another set, we tried 7 rules for picking one trade direction per day, against rules with no logic at all, like Buy every day and Sell every day. Tested over 5 years, roughly 180–260 trades per year. The best rule’s 5-year total was close to Buy every day when entering at 07:00, and no rule beat both no-logic rules in more than 2 of the 5 years. Every rule’s total was still within the range that chance alone could produce. If you just looked at the results table and took the top one, you’d get a rule with nothing behind it but luck.
Basic ways to protect yourself:
- Set aside part of the data, don’t use it while tuning, and test on it afterwards
- Compare with a rule that has no logic, such as Buy every day. If yours doesn’t clearly win, there’s no evidence yet
- Check that values close to the chosen one also do well, not just one single value
5. The person running it is not the tester
A Backtest never turns the EA off during a losing streak and never changes settings halfway. So live results also depend on how well we stick to the plan.
How much to allow for
There is no single number for every system. In our own planning, we assume live results may come in at around 40–60% of the Backtest for systems that make little per trade. This is an estimate, not a measured result, and you should replace it with your own system’s real numbers as soon as you can.
Suggested steps:
- Test with real ticks, and check in the Journal that the whole test period uses real ticks
- Look at profit per trade and compare it with spread and commission per trade
- Test on a data period you didn’t use for tuning
- Run on a demo or small account first, then compare the real entry price with the price the system intended, trade by trade
A small account at the start isn’t there to make money. It’s there to measure how far off the Backtest is for your system.
Common mistakes
- Trusting multi-year results without checking which years used real ticks
- Judging a system on a few weeks of live results, good or bad
Frequently asked questions
What percentage should I knock off Backtest results?
There is no single number for every system. A system that makes little per trade and enters while price is spiking loses more than one that makes a lot per trade. The best way is to run a small or demo account and measure the real gap for your own system.
Is testing with "Every tick based on real ticks" enough?
It is much better than generated ticks, but it still has no slippage from sending real orders, and you need to check that the test period has full real tick data. Some servers only have real ticks for recent periods. Earlier periods get generated.
This is general education, not investment advice. Trading is risky and you may lose all of your capital.