Why backtest results differ from live trading
The short answer
Backtest results differ from live trading because a backtest only replays saved prices. Fitted settings, guessed ticks, a fixed spread and no delay can each flatter a strategy. Match the tester’s data, spread and delay to live trading, then log small live fills.
Five things a backtest leaves out can cost you live
A backtest replays saved prices to show how your strategy would have traded. Live trading is the real thing, so the results can differ. Five things can separate them, and each is a setting you can check in MetaTrader 4 (MT4) and MetaTrader 5 (MT5).
Why it matters. Leaving these out can make a losing strategy look like a winner. The table lists each one and the setting to check.
| Cause | What the test assumes | What to check |
|---|---|---|
| Fitting to the past | Settings were adjusted until they suit the history you tested | Test on dates the settings never saw |
| Modelled prices | The tester builds the ticks inside each bar, unless you use real ticks (MT5 only) | Use the most detailed data your platform offers |
| Spread | MT4 adds one spread to Bid-only history. MT5's Every tick mode uses one fixed spread for each minute | Set a spread that fits the hours you trade |
| Delays and requotes | MT4 has no setting for them. MT5 can add a delay to an EA’s orders | Test with a delay, and compare it with none |
| Account costs | MT5 uses the commission and account settings you give the test | Match them to your live account |
Your tester may be guessing the prices inside each bar
MT4 keeps history only as bars, and MetaQuotes warns that a test on bars alone can be inaccurate. MT5 can replay the real ticks your broker stored. MT4 has no real-tick mode, MetaQuotes lists it as a feature of the newer platform.
What it means for you. A test built from bars can show fills at prices never offered. Find your mode below to see what your test uses.
| Mode | What it uses | Watch for |
|---|---|---|
| MT4 Open prices only | The open of each new bar, so the EA trades on completed bars | Any move inside a bar goes unseen |
| MT4 Control points | Real open, high, low and close prices of the nearest smaller timeframe | MetaQuotes calls the results estimates, not final |
| MT4 Every tick | Ticks built from every smaller timeframe, filled in from templates | It works best with one-minute history for the whole test |
| MT5 1 minute OHLC | Four prices for each minute bar | Moves between those four prices go unseen |
| MT5 Every tick | Every tick simulated from minute data | Ask is Bid plus one fixed spread for each minute |
| MT5 Every tick based on real ticks | Real ticks your broker stored, with no simulation | The first download can take a long time |
MT5 also offers Open prices only and Math calculations. Descriptions follow MetaQuotes’ help pages, checked 29 September 2026.
MT4's history holds only Bid prices. Its tester adds one spread, taken when the test starts, unless you type your own into the Spread field. In MT5, real ticks let the spread change inside a minute, and Every tick mode does not.
So a test over busy hours can charge you a narrower spread than you would really pay.
Four settings bring your test closer to live
Each step removes one way the tester flatters your strategy.
Set the test closer to live conditions
- 01
Use the most detailed prices
In MT5, choose Every tick based on real ticks. In MT4, choose Every tick, load one-minute history for the whole period, and read the modelling quality in the report. The closer the ticks are to real ones, the fewer fills the tester invents.
MetaQuotes advises against Every tick in MT4 when smaller timeframes do not cover the period.
- 02
Set a spread that fits your hours
In MT4, type a spread into the Spread field, or the test uses the starting spread. Pick a figure your broker quotes when you trade. Then rerun with a wider one to see if live costs wipe out the profit.
- 03
Add a delay in MT5
Open the Execution setting and try a fixed delay instead of No Delay. MetaQuotes says MT5 can use your measured ping, the time data takes there and back, as that delay. Latency vs slippage explains how a delay changes a fill.
Delays apply to an EA’s own orders, not to pending orders executing on the server. MT4's tester settings do not include slippage or delay. Treat its fills as ideal until your own log says otherwise.
- 04
Test on dates the settings never saw
MT5’s Forward option sets inputs on the first half and checks them on the second. In MT4, use Use date to hold the latest months back. A strategy that works only on its test dates is fitted to the past.
The same small cost hurts a scalper ten times as much
A small cost per trade takes a bigger share of a small gain. The made-up example below gives two strategies the same extra costs in live trading.
| Per trade | Wide-target strategy | Scalping strategy |
|---|---|---|
| Average gain in the test | 20.0 | 2.0 |
| Extra spread live, against the test | −0.8 | −0.8 |
| Average worse fill live | −0.3 | −0.3 |
| Average gain live | 18.9 | 0.9 |
| Share of the test result lost | 5.5% | 55% |
Every figure is made up to show the arithmetic. None describes a real broker, platform or connection.
The same costs leave the first strategy with 94.5% of its test result and the second with 45%. A tester that ignores those costs flatters the second one far more. So if you scalp, test with live costs before you trust any result.
Your own small live trades show the real gap
Run the strategy live at your broker’s smallest size, so finding out costs you little. Log each fill, the price you asked for, the price you got and the spread. How to log your fills shows the method.
After a set number of trades, compare the live average gain with the test’s. Take off the extra spread and the average fill gap. If a big gap remains, suspect fitting to the past before you blame the market.
We don’t close a backtest gap, we help around a dropped connection
A backtest runs on your own machine, so no internet link can lose a piece of data during a news release. In live trading, one lost piece holds up every price update and order behind it. Everything waits while your computer sends it again across the world.
A test replays saved prices, so a dropped connection never appears in it. Live, a drop cuts your price feed, and your EA can miss the moves it was tested on. Traders Proxy helps around a drop in two ways.
If your device drops off, our server notices quickly and frees its place, so your platform can reconnect instead of hanging. That covers your side of the connection only. A connection that sends nothing at all for a long spell is closed.
A device that drops can reconnect straight away, even when our server is busy. It must come back from the same network within a short window. Your plan’s device limit still applies.
Why it matters. You aren’t left waiting to get back in while your EA misses prices.
You cannot paste four values into your platform while your chart is already frozen in a live trade. Set it up today while the market is calm. Then time it on your own screen during the next release.
Traders Proxy does not change the tester, your spread or your broker’s fills, so it will not close a backtest gap. We don’t promise lower ping. Distance sets the minimum. Each platform’s maker decides which of its connections use its proxy setting.
An EA that must run while your computer is off needs a VPS. See Traders Proxy or a VPS. How Traders Proxy works shows where our server sits. If your broker prohibits proxies, don’t use one.
Common questions about backtests and live trading
Frequently asked questions
Why does my EA profit in the tester but lose live?
Common causes are settings fitted to the past, kinder tester assumptions, and a market that has changed since the test. A tester setting can fix only the second.
Does MT4 have a real ticks mode?
No. MT4's tester offers Open prices only, Control points and Every tick. MetaQuotes lists Every tick based on real ticks as a feature of the newer platform, MT5.
Which MT4 tester mode is most accurate?
Every tick, says MetaQuotes. It builds the ticks from smaller timeframes rather than replaying recorded ones, so check the modelling quality in the report.
How much slippage should I assume?
We can’t give a figure with a source, so we give none. Log your own fills for the symbol and session you trade, and use your own average.
Can I close the gap to zero?
No. Some gap always remains. Aim for a live result near the test’s, with a reason you can name for each difference.
Does Traders Proxy close the gap?
No. It changes neither the tester nor your broker’s fills. It helps only around a dropped connection.
Field reports · Verified forum threads
Real forum reports, what our system does, and where it stops.
Every quote below links to the forum thread or vendor guide where it appeared. Underneath each quote, see which parts of our system work together on it and where our server stops.
cTrader stuck on 'Reconnecting' after a release, outage or weekend maintenance
“This problem should have been resolved by now. Please restart your cTrader and in case you still experience problems, please send us some troubleshooting information quoting this thread.”
Why a proxy does not change this. Traders Proxy doesn't fix faults inside your platform or on its maker's servers. It only changes the route between your platform and ours.
Where it stops. Never mention 'Reconnecting' as a symptom we cure.
High server delay, slow price feed or slow fills in cTrader
“We do not control the entire order routing, therefore we cannot provide a comprehensive explanation for the execution time.”
Why a proxy does not change this. Traders Proxy doesn't change your broker's prices, fills or spreads, and it doesn't promise lower ping.
Where it stops. We do not change cTrader server delay, tick frequency or fills. In cTrader, our server connects onward to Spotware’s cloud node.
MT5's own Proxy box overwrites, empties or refuses to save what you type
“I click on Enable proxy server -> Proxy ... -> Give my server , login . password , sock5 Then when i press test or ok , it doesnt go anywhere at all. The cursor goes back to the server field. I tried the same setting on my local computer , it is working fine.”
Why a proxy does not change this. We change nothing on your computer. The server, login and password go into your platform's own Proxy setting.
- Only the app you set up is routedBoundary
Where it stops. We change nothing on your computer. If a MetaTrader 5 build fails to save its proxy dialog, we cannot repair the terminal window itself.
Order timeouts, 3-minute hangs, 'Off quotes' and 'No connection' when closing
“Sometimes an order get executed on the server-side while my EA is on the way of processing a modify on that order. Everytime that happens it needs to wait full 3 minutes until a 'timeout' error returns”
Why a proxy does not change this. Traders Proxy doesn't change spreads, fills or requotes.
Where it stops. Off quotes, Requote and order timeouts are decided by your broker’s server, not by the proxy route.
Sources
- MetaQuotes, MT4 help, Strategy Testing setup (modelling methods and Spread)Checked
- MetaQuotes, MT4 help, Tester setup tab (the settings list)Checked
- MetaQuotes, MT4 help, Strategy Testing overview (real tick mode in the newer platform)Checked
- MetaQuotes, MT5 help, Strategy Tester settings (execution, tick modes, forward testing)Checked
- MetaQuotes, MT5 help, Real and Generated TicksChecked