Demo vs Live Spread Gap: Estimating Backtest Shrinkage
Contents
- Bottom line: demo results won't carry over to live trading unchanged
- Why demo accounts tend to look better
- The price feed conditions can differ
- The gap shows up in the moments when spreads widen, not in the average
- EAs with many trades and small per-trade moves are hit harder
- How to measure the live spread distribution
- How to apply the discount
- Subtract it as an extra cost per trade
- Rerun the backtest with a fixed spread
- Limits and cautions
- Summary
Bottom line: demo results won't carry over to live trading unchanged
Here is the conclusion up front. Even if a demo account produces good results, you should expect live performance to be lower by the amount of the spread. How much lower depends heavily on the EA's trading frequency and the price move captured per trade, so there is no single "X% less" figure. That is why we recommend measuring the spread distribution on your own live account and subtracting the gap from your test results as a per-trade cost.
Note that all forward results published on FXEA365 come from forward tests on Exness demo accounts. They are not live account results. The "shrinkage" described in this article applies to our own published data as well.
📧 Free 8-email course + subscriber-only pack of 13 MT5 indicators
Right after you sign up, you get a download link for a subscriber-only pack of our 13 MT5 indicators: compiled files (.ex5), source code and a setup guide. Then 8 emails on algo-trading essentials, reading backtests correctly and choosing a broker (one a day for the first 5 days, then 7, 14 and 30 days after signing up). You also get notified before each price rise of the versions sold on the MQL5 Market (launch pricing that steps up as copies sell). Our EAs are free on this site with a live account at a partner broker.
* Privacy strictly protected. You can unsubscribe at any time.
Why demo accounts tend to look better
The price feed conditions can differ
A demo account and a live account don't always use the same price feed under the same conditions. Depending on the broker and account type, demo spreads may be narrower, may widen less around news releases, or may show no slippage on fills. Some brokers show almost no difference, so all we can say is that it varies by broker and you won't know until you check.
The gap shows up in the moments when spreads widen, not in the average
Spread differences tend to be larger during the early-morning rollover, right after news releases, and at the Monday open gap than in normal conditions. If an EA's entries cluster in those windows, the cost you actually pay can be much higher even when the average spread looks identical.
EAs with many trades and small per-trade moves are hit harder
The smaller the price move targeted per trade, the larger the share of profit the spread takes. For example, GOLD TRIPWIRE on this site is a short-term type with an average holding time of 0:21:12 in its MT5 backtest. Compared with MEGAMAX DONCHIAN, whose backtest average holding time is 32:58:21, a short-term EA is, as a general rule, structurally more sensitive to the same spread gap. How much it actually matters, though, can only be known by measuring.
How to measure the live spread distribution
| Step | What to do | What to look at |
|---|---|---|
| 1. Record | On a live MT5 account, run a script that writes the Bid/Ask difference to CSV on every tick (or every minute) | Raw data |
| 2. Period | Record for at least several weeks, ideally spanning a month that includes news releases | Number of days recorded |
| 3. By hour | Aggregate by each hour of server time | Median, top-10% value, maximum |
| 4. Match | Extract only the spreads at the times the EA actually entered | Average at entry |
| 5. Compare | Measure the demo account the same way and take the difference | Difference per hour |
Step 4 is the key. What counts as the real cost is not the all-hours average but the spread at the moment the EA places an order. You can write the recording script yourself, or build it by combining the helper utilities in the MT5 tools.
How to apply the discount
Subtract it as an extra cost per trade
This is the simplest and least error-prone method.
- Call the "live vs demo spread difference" from step 5 Δ
- Extra cost = Δ × value per lot × lot size × number of trades
- Subtract the extra cost from the total profit in your test results and recalculate PF
PF is "gross profit ÷ gross loss," so as costs rise the numerator shrinks and the denominator grows. An EA whose original PF is close to 1.0 can fall below 1.0 with even a small extra cost.
Rerun the backtest with a fixed spread
The MT5 tester lets you specify a fixed spread. Rerunning the test with the top-10% value measured on your live account gives a pessimistic estimate. Running it twice, once with the median and once with the top-10% value, and seeing how much the results change will show how sensitive that EA is to spread.
Limits and cautions
- It only looks at spread. Slippage, order rejections, and order delays cannot be measured this way. The real shrinkage may be larger than the estimate.
- It only describes the period you measured. Spreads change with market conditions and broker policy. A value measured six months ago may not hold today.
- Fixed-spread testing is simpler than reality. Real spreads move, so results from a fixed value are only a rough guide.
- Our published data has the same limits. Even if our demo forward test results look good, there is no guarantee that a live account will produce the same. Treat demo results as a preliminary stage before confirming that they reproduce in live trading.
- When choosing a broker, don't decide on the advertised average spread alone. We've summarized how to compare in the broker comparison.
Summary
- Demo account spreads can look better than live ones, so assume test results will shrink accordingly
- The gap shows up not in the average but in the moments when spreads widen: early morning, news releases, and the Monday open
- Record the Bid/Ask difference on a live account and evaluate using the spread at the times the EA enters
- Either subtract the gap as a per-trade cost, or rerun the test with a fixed top-10% spread
- EAs with short average holding times and many trades are more exposed to spread
- Slippage comes on top of this, so treat the estimate as a lower bound on the shrinkage
- You can compare each EA's tested figures in the measured ranking of all EAs
📧 Free 8-email course + subscriber-only pack of 13 MT5 indicators
Right after you sign up, you get a download link for a subscriber-only pack of our 13 MT5 indicators: compiled files (.ex5), source code and a setup guide. Then 8 emails on algo-trading essentials, reading backtests correctly and choosing a broker (one a day for the first 5 days, then 7, 14 and 30 days after signing up). You also get notified before each price rise of the versions sold on the MQL5 Market (launch pricing that steps up as copies sell). Our EAs are free on this site with a live account at a partner broker.
* Privacy strictly protected. You can unsubscribe at any time.
Have a question about EAs or FX?
You can post it on the Nattzy trading forum (free sign-up). Questions beyond this article are welcome too — EA settings, choosing a broker and more.
Ask on Nattzy ↗