A trader messaged us last month. He'd downloaded an EA from the MQL5 community, backtested it on MT4 for three years, saw net profit triple his starting balance. He deposited $5,000 into a live account, turned it on, and lost $600 in two weeks.
"The backtest looked amazing. Why is live completely different?"
We hear this constantly. The gap between backtest and live is the single most common frustration among EA traders, and there are at least seven distinct reasons for it. Some are fixable. Some you just have to plan around.
1. Your backtest data is probably fake
MT4's "Every Tick" mode sounds like it uses real tick data. It doesn't.
What it actually does is take 1-minute candle data (open, high, low, close) and interpolate fake ticks between them using a fixed algorithm. The result is a smooth, predictable price path within each minute. Real markets don't move like that. In a real minute of trading, there might be hundreds of ticks with jagged, unpredictable movement. MT4 fabricates maybe a dozen, following a neat pattern from open to high to low to close.
Why does this matter? If your EA uses tight stop losses or precise entry levels, the backtester might never trigger your stop because the interpolated data "smoothed over" the price spike that would have hit it in real trading.
How to check: look at "Modeling Quality" in the bottom-left corner of the backtest report. Default MT4 data typically shows 25% or 90%. To get close to 99%, you need to import real tick data using tools like Tick Data Suite.
The difference isn't small. We tested the same scalping EA with default MT4 data and got an 80% annual return. Same EA, same parameters, with 99% tick data: 12% annual return. That's not a rounding error. That's the strategy barely surviving versus looking like a goldmine.
MT5 solves this with its "Every tick based on real ticks" mode, which downloads actual recorded tick data from the broker's server. It's one of the main reasons we do all our backtesting on MT5 now.
2. The spread model is lying to you
MT4 backtests use a fixed spread by default. Set EURUSD to 2 pips and it stays at 2 pips for the entire test — Asian session, London open, NFP release, Christmas Eve. All 2 pips.
Real spreads are nothing like this. EURUSD might sit at 0.8–1.5 pips during peak London-New York overlap, then widen to 3–4 pips during the Asian session. During the few seconds after an NFP release, spreads can spike to 15+ pips.
For short-term strategies where the average profit per trade is 5–8 pips, the difference between a 1-pip spread and a 3-pip spread isn't minor. It's the difference between being profitable and not.
We ran a grid EA through three spread scenarios on the same data:
| Spread model | Annual return |
|---|---|
| Fixed 2 pips | 60% |
| Floating (realistic average) | 22% |
| Floating + news spike simulation | 8% |
Which of those three numbers do you think matches live trading? It's the last one. The 60% was a fantasy created by unrealistic cost assumptions.
3. Slippage doesn't exist in backtests
Every order in a backtest fills instantly at the exact requested price. You click buy at 1.08500, you get 1.08500. Done.
Live trading doesn't work this way. Between clicking buy and the broker executing, the price moves. On EURUSD during calm markets, slippage is typically 0.5–2 pips. During volatile moments, it can hit 5–10 pips or more.
For a scalping EA averaging 8 pips profit per trade, 2 pips of round-trip slippage (1 pip on entry, 1 pip on exit) shrinks your profit by 25%. Trade 20 times a day and that's 40 pips of invisible cost that your backtest never showed.
The backtest report shows these costs as zero. They're not zero in real life.
4. Execution delay is invisible in backtests
In a backtest, the moment the EA generates a signal, the order fills. Zero delay.
In reality, there's a round-trip delay between your EA sending the order and the broker's server executing it. This delay is typically 50–300 milliseconds, depending on how far your computer (or VPS) is from the broker's trading server.
50 milliseconds doesn't sound like much. But during fast-moving markets, EURUSD can jump 2–3 pips in 50ms. If your VPS is in Singapore and your broker's server is in London, the delay can stretch to 200–400ms, which translates to 5–8 pips of additional slippage on top of the normal market slippage.
This is why VPS location matters more than VPS speed. A trader we work with ran the same EA from two different locations. From a generic cloud server: 2.3% monthly return. From a VPS in the same data center as the broker (Equinix NY4): 4.1% monthly return. Same EA, same broker, same parameters. The only difference was 150ms of network latency.
Most major brokers run their matching engines in either Equinix NY4/NY5 (New York), LD4 (London), or TY3 (Tokyo). Our VPS guide covers how to pick the right location.
5. Markets change, backtests don't
This one is the hardest to fix because it's not a technical problem. It's a fundamental limitation of backtesting.
Your backtest uses, say, 2020–2023 data. During that period, EURUSD went through a massive trend (1.08 to 1.23 in 2020, then a crash from 1.13 to 0.96 in 2022). A trend following EA looks brilliant on that data.
Then 2024 comes and EURUSD ranges between 1.05 and 1.12 for months. Your trend strategy gets whipsawed by false breakouts, stopping out repeatedly. The backtest said 40% annual return. Live trading says -8%.
Markets cycle between trending and ranging phases. No single strategy is profitable in all of them. A backtest that only covers one phase will overestimate future performance. This is one reason overfitting is so common — developers tune their EAs to work perfectly on recent data without testing whether the strategy generalizes.
The fix is always the same: split your data. Use 2018–2022 for optimization, test on 2023–2025 without changing anything. If performance drops by more than 30–40%, the strategy probably doesn't generalize. We do this on every EA we build, and about 40% of strategies fail the out-of-sample test.
6. Overfitting makes backtests look too good
An EA with 20 adjustable parameters can be tuned to fit almost any historical data perfectly. The backtest curve goes up in a straight line. Max drawdown is 3%. Profit factor is 5.0.
And it's completely useless in live trading.
Because those 20 parameters aren't capturing market patterns. They're memorizing coincidences in historical data. Change the time period or the currency pair, and the strategy collapses.
We've written a full guide on overfitting, but the quick checks are:
- Adjust parameters by 10–20%. Does the result change drastically? Overfitting.
- Test on a different time period. Does the strategy stop working? Overfitting.
- The curve is impossibly smooth with no drawdown? Either overfitting or hidden Martingale risk.
A robust strategy should survive small parameter changes. If the only profitable parameter set is 14.7 and everything else loses money, you've found a needle, not a hill.
7. Different brokers, different results
You backtest on IC Markets data. You trade live on a different broker. The same EA produces different results. This catches people off guard, but it shouldn't.
Broker differences are more subtle than most traders realize. Server timezones vary (GMT+0, GMT+2, GMT+3), which means the opening and closing prices of daily candles differ between brokers. If your EA trades daily signals, it might literally see different setups on different brokers.
Spreads add up over time. Broker A averages 1.2 pips on EURUSD, Broker B averages 1.8 pips. Seems small. Over 500 trades, that's 300 pips of additional cost.
Then there's liquidity. Large brokers aggregate quotes from multiple banks and get tighter fills. Smaller brokers with one or two liquidity providers tend to have wider spreads during volatile periods and more order rejections. The execution model matters too — STP/ECN brokers pass your orders to the market, while market makers fill internally with different execution characteristics.
We've seen the same EA produce 3% monthly return on one broker and -1% on another. Not a strategy problem — an execution environment problem. If you're evaluating an EA, test it on the broker you'll actually trade with, not the one the developer backtested on.
How to close the gap
Knowing the problems is half the battle. Here's what to actually do about them.
Start with better backtest quality. Use real tick data with 99%+ modeling quality. Set floating spreads instead of fixed. Add 1–3 pips of simulated slippage. MT5 handles all of this natively, which is why we recommend it over MT4 for testing. Our backtest guide covers the setup.
Then stress test. Take your "passing" backtest and make it harder. Double the spread. Add 3 pips of slippage. If the strategy still makes money under these conditions, it has a margin of safety. If it breaks, the edge was too thin for real trading. This is basically what realistic cost analysis looks like in practice.
Run a demo forward test for 4–8 weeks. Demo execution is cleaner than live (no real slippage, tighter spreads), so don't expect it to perfectly predict live results. But it validates strategy logic and catches bugs. Compare win rate, average profit, and max drawdown against the backtest. If any metric differs by more than 30%, investigate before going further.
Go live with the smallest possible position. 0.01 lots. The goal isn't to make money — it's to measure the gap between your demo results and real execution. Watch actual slippage, actual spread, and order rejection rates. Run this for 2–4 weeks minimum.
Scale up slowly. Increase position size by 20–30% every two weeks. If something goes wrong at a larger size, the losses are manageable.
Pre-launch checklist
Before moving any EA from backtest to live money, confirm every item:
- Backtest uses 99%+ modeling quality (real tick data)
- Floating spread, not fixed
- 1–3 pips of simulated slippage included
- Strategy is profitable on out-of-sample data (different time period than optimization)
- Key parameters adjusted by 10–20% without results collapsing
- Tested on at least 2 different currency pairs (if applicable)
- Demo forward test run for 4+ weeks
- Demo vs backtest deviation is under 30%
- VPS configured with under 100ms latency to broker
- Minimum lot size funded for live verification
- Maximum drawdown limit set (and you'll actually honor it)
- EA error handling verified (disconnection recovery, order retry logic)
If more than 3 items are unchecked, you're not ready for live money yet. The checklist isn't optional — it's the difference between learning from a controlled test and learning from a blown account.
Every EA in the FXTool marketplace has been through this process. We publish the backtest data, and you can run the tests yourself with the position size calculator to figure out appropriate lot sizes for your account.
FAQ
My EA does well on demo but worse on live. Why?
Demo orders don't hit the real market, so there's no liquidity impact, near-zero slippage, and sometimes narrower spreads. The gap between demo and live is smaller than backtest-to-live, but it exists. This is why the small-lot live test step is non-negotiable.
Is 90% modeling quality good enough?
Depends on the strategy. For a swing trader holding positions for days on H4 or daily charts, 90% is acceptable — the strategy doesn't depend on intra-candle price movement. For anything on M5 or M15 with tight stops, 90% isn't close to enough. You need 99%+ tick data. We've seen the same scalping EA go from "profitable" to "losing" just from improving data quality.
Is MT5 backtesting actually more accurate?
Yes. MT5 natively supports real tick data, multi-pair testing, and variable spread simulation. MetaQuotes' documentation covers the technical details. If you're building or evaluating a new EA, there's no reason to use MT4's tester anymore.
How many years of data should I backtest?
3–5 years is the standard recommendation. Enough to include both trending and ranging markets, plus at least one major volatility event. Under 1 year is almost meaningless. Over 15 years has diminishing returns because market microstructure (spreads, liquidity, volatility patterns) changes significantly over decades, and 2010 data may not be relevant to 2025 conditions.
Can I ever fully eliminate the backtest-to-live gap?
No. Backtesting is a simulation of history, not a prediction of the future. You can narrow the gap significantly with better data, realistic costs, out-of-sample testing, and proper risk management. But some gap will always remain. Think of backtesting as a screening tool that filters out strategies that definitely won't work — not as proof that a strategy will.
About the author: The FXTool team builds and tests MetaTrader trading tools daily. We run every EA we sell on live accounts and publish the results. This guide reflects what we've learned from building 50+ EAs and working with thousands of retail traders.
Forex trading involves significant risk and may result in total loss of capital. This article is for educational purposes only and is not investment advice. Understand the risks and consider your financial situation before trading.