CRTLABCRTLABBacktesting System
FeaturesPricingBlogFAQ
Log inStart freeDatabento · CoinAPI ·TradingView
← All articles
Backtesting

Why Your Backtest Results Don't Match Live Trading

Your backtest was honest and live still underperformed. Here's the real gap — trading costs scaled to your stop distance, execution and fills, data differences, and the trades you didn't take — and how to measure your own.

Aug 6, 2026·13 min read·Backtesting

There's a specific kind of demoralising that only happens to people who did the work properly. You tested a strategy across a few hundred setups. The numbers were good. You went live, followed the rules, and the results are worse — not catastrophically, just worse, in a way that's hard to explain and impossible to ignore.

Most advice at this point tells you your backtest must have been dishonest. Sometimes it was. But there's a version of this where the test was clean and the gap is still real, and nobody covers that version — which is a problem, because it's the one that decides whether you keep trading the strategy or bin something that actually works.

This is about the honest gap: where it comes from, roughly how big each piece should be, and how to measure yours instead of guessing at it.

First, rule out the dishonest backtest

Want to try this yourself? Backtest it on real market history in CRTLAB.Start free →

Quickly, because it genuinely is the most common cause and there's no point diagnosing anything subtler until it's excluded.

If you marked up charts you'd already seen, counted only the setups that worked, changed the rules partway through, or tested a sample so small it was a story rather than a measurement — the gap isn't a mystery. Your backtest was a description of the past, and the past always cooperates. That's covered properly in the seven backtesting mistakes, and the structural fix is out-of-sample testing: rules written before you look, validated on data you haven't touched.

Run that check first. If your test survives it, the rest of this article is your answer.

Source 1: costs, and why they hurt some strategies 20x more than others

Every backtest has an implicit cost assumption, and for most manual traders that assumption is zero. Live, you're paying spread on every entry and exit, commission if your broker charges it separately, and financing on anything you hold overnight.

The instinct is to treat this as a small, uniform tax. It isn't uniform at all, and this is the single most under-appreciated reason backtests overstate results.

Cost is a fixed number of points. Your risk is a fixed number of points. So the damage is entirely a function of your stop distance.

Take a 1.5 pip spread:

Stop distance Cost as % of risk Effect on a 0.3R edge
10 pips 15% edge cut to ~0.26R
25 pips 6% edge cut to ~0.28R
50 pips 3% edge cut to ~0.29R
100 pips 1.5% edge cut to ~0.295R

Same spread, same strategy logic, and the tight-stop version bleeds ten times more of its edge than the wide-stop version. This is why scalping models that look magnificent in replay so often die on contact with a real account, while slower models transfer more or less intact. It has nothing to do with the setup being worse. It's arithmetic.

Two consequences worth acting on:

  • If your model uses tight stops, cost is not a rounding error and you must model it. Add your typical all-in cost to every trade as a fixed haircut before you decide the strategy is viable.
  • Spread is not the number on your broker's marketing page. That's the typical spread in liquid conditions. It widens at the session open, around high-impact news, and over the rollover — which, if you trade sessions or news-driven sweeps, is precisely when you're trading. Use a realistic bad-case number, not the advertised one.

Source 2: execution — you tested with information you didn't have

This is the source that most reliably survives an otherwise clean test, because it's not about honesty, it's about mechanics.

The completed-candle problem. In a backtest, you're looking at a candle that has finished. You know its close, its high, its low, and its wick. Live, you're making the decision inside a candle that is still forming, and the beautiful rejection wick you'd have entered on doesn't exist yet — it's a body moving against you that may or may not become a wick. A rule like "enter on the close of the sweep candle" tests fine and is genuinely hard to execute, because at decision time you cannot see the close.

This is the whole argument for testing candle by candle rather than on a finished chart. If your replay reveals the next candle only when you advance it, the information you have at decision time is the information you'll have live — which is the only way the test result means anything. It's the core of how CRTLAB's replay works and the reason candle-by-candle replay isn't a cosmetic feature.

Fills. A backtest fills you at your price. Live, a market order fills at whatever's available, and a limit order at your price may not fill at all. These fail in opposite directions and both cost you: market orders give you worse prices on the trades you get, limit orders give you no trade on the moves that ran without you. The second is more expensive and much less visible, because a missed trade leaves no trace in your account.

Slippage isn't random. This is the part that's easy to under-weight. Slippage clusters in fast conditions — news, the open, the moment a level breaks and stops cascade. If your strategy is deliberately trading liquidity sweeps and displacement, you are systematically trading the exact moments when fills are worst. Your average slippage is not the number that matters; your slippage on the trades your strategy takes is.

Gaps. Your stop is a request, not a guarantee. Price can gap over it — over a weekend, over a session break, on a news release — and you exit beyond your stop at a loss bigger than 1R. It's not frequent, but a backtest that assumes every stop fills exactly is quietly reporting a best case. If you hold over weekends, this is a real line item.

Source 3: data — you may not have tested the market you're trading

Two charts of "EURUSD" from two brokers are not the same chart.

  • Bid, ask or mid. Most platforms plot bid. If your test data and your live feed differ here, every level you marked is offset by the spread — which matters enormously for a strategy defined by whether a wick took out a high by a fraction.
  • Server time and session boundaries. Broker server time varies, and it determines where the daily candle opens and closes. If your backtest data rolls the day at a different hour than your live feed, your daily ranges, your Asian range, and every session boundary you built rules on are shifted. For anything session-based this can invalidate a test outright.
  • Index CFDs are broker-specific products. Two brokers' NAS100 will differ in exact highs and lows, in when they're open, and in how they behave outside cash hours.
  • Weekend and holiday handling. Whether your data includes the Sunday open, and how thin sessions are represented, changes what a "range" means.

None of this makes backtesting pointless — the structure of the market is the same. But it does mean that a strategy hanging on a level being taken by half a pip is fitted to a data feed, not to a market. Test on the data you're actually going to trade, and be suspicious of any rule whose outcome flips on a fraction of a point.

Source 4: you — the trades you didn't take

Everything so far is mechanical, and mechanical gaps are usually small. This one is usually the largest, and it's the one traders resist hardest.

A backtest assumes you take 100% of qualifying setups. Live, nobody does. And the trades you skip are not a random sample.

You skip the ones that felt wrong. The ones after two losses. The ones where the entry required buying into a candle that was already running. The ones on Friday afternoon when you'd rather not. The uncomfortable ones — which, in any model built on trading against the obvious, are disproportionately the good ones. Your live results are the backtest's results minus a self-selected subset, and the selection rule is your discomfort.

The second half of this is deviation on the trades you do take. Moving a stop, taking profit early because it's green, sizing up after a loss. Each one individually is defensible. In aggregate they're a different strategy from the one you tested, and its numbers are unknown.

This is why backtesting and forward testing aren't rivals but a sequence: the backtest measures the strategy, and only live trading with real size measures you executing it.

How to measure your own gap instead of guessing

The reason this diagnosis usually fails is that people compare a feeling about live trading to a number from a backtest. Get both sides to numbers.

Keep live trades in the same journal as your tested trades, with a column marking replay, demo or live. Then compare four things:

  1. Trade count ratio. Qualifying setups you took live, versus setups per week in the test. If you're taking 60% of them, that alone can explain the whole gap, and it's a discipline problem, not a strategy problem.
  2. Rule-following rate. Percentage of live trades that followed the plan exactly. Anything under 90% and your live results aren't a test of your strategy.
  3. Average R, rules-followed trades only. Filter out the improvised trades and compare like with like. This is the number that tells you whether the strategy transferred.
  4. Cost per trade in R. Your all-in cost divided by your average stop distance. Now you know whether Source 1 is a rounding error or a third of your edge.

Run that and the gap stops being one blurry feeling and becomes three or four numbers, each pointing at a different fix. A structured approach to logging this is covered in how to journal your trades on our teaching site — the MFE and mode columns in particular are what make this comparison possible.

How big a gap is normal?

There's no honest universal number, but there is a useful frame.

For a slower model with wide stops, executed with high rule-following, the mechanical sources — cost, slippage, fills — should cost you a modest fraction of your edge, not most of it. If you tested +0.4R per trade and you're getting +0.3R live, that's about what a real account does to a real edge, and the strategy transferred.

If you tested +0.4R and you're getting −0.1R, the mechanical sources cannot explain that. Something structural is wrong: either the test wasn't as clean as you think, or your execution differs from your rules far more than you believe. The four numbers above will tell you which.

And before concluding anything either way — check your live sample is big enough to conclude with. Twenty live trades is not evidence of anything, and abandoning a good strategy on twenty trades is one of the most expensive mistakes available. How many backtests before trusting a strategy applies identically to live results, and the sample size calculator will tell you how many trades your edge and win rate actually need.

Close the gap from both ends

The gap narrows from two directions, and you want both.

Make the backtest more honest:

  • Test candle by candle so you decide with the information you'll actually have.
  • Apply a fixed cost haircut to every trade, using a realistic bad-case spread.
  • Test on the same instrument, from the same feed, that you'll trade.
  • Log the trades you'd have found hard to take, and mark them.

Make the live trading more like the test:

  • Standardise risk with a position size calculator so R means the same thing everywhere.
  • Set the stop and target before entry with a risk/reward calculator, and don't renegotiate mid-trade.
  • Grade yourself on rule adherence, not P&L, for the first fifty trades.
  • Take every qualifying setup, or write down explicitly why one didn't qualify. "It felt wrong" is a rule you haven't tested.

The goal isn't a gap of zero — that isn't available. It's a gap you can name, size, and account for, which is the difference between a strategy you can trade with conviction and one you abandon at the first drawdown.

FAQ

Why is my backtest profitable but my live trading isn't? Rule out a dishonest backtest first — hindsight markup, cherry-picked setups, rules changed midway, or too small a sample. If the test survives that, the honest gap comes from four places: trading costs, execution differences like fills and slippage, data differences between your test feed and your live feed, and the trades you skipped or improvised on. The last one is usually the biggest.

How much do trading costs affect backtest results? Entirely depends on your stop distance, because cost is a fixed number of points and your risk is a fixed number of points. A 1.5 pip spread is 15% of a 10-pip stop and 1.5% of a 100-pip stop. Tight-stop strategies can lose a serious share of their edge to costs; wide-stop strategies barely notice. This is why scalping models transfer to live trading far worse than swing models.

Should I include spread and slippage in my backtest? Yes, at least as a fixed haircut per trade — and use a realistic bad-case spread rather than the advertised typical one, since spreads widen at the open, around news, and over the rollover, which is often exactly when your setups trigger.

Does broker data affect backtest accuracy? It can, significantly. Brokers differ on bid versus mid pricing, on server time (which sets where the daily candle opens), and on how index CFDs are constructed. Any rule that hinges on a level being taken by a fraction of a point is fitted to a data feed rather than to the market. Test on the feed you'll trade.

How many live trades before I decide a strategy doesn't work? More than most people use. Twenty trades tells you almost nothing — a genuinely profitable strategy can easily lose over twenty trades. Before abandoning anything, check the sample size your win rate and edge actually require, and filter to trades where you followed the rules, otherwise you're judging the strategy on your improvisation.

What if I'm taking fewer trades live than in my backtest? That's the single most common cause of the gap, and it's a discipline problem rather than a strategy problem. The skipped trades aren't random — they're the uncomfortable ones, which in most smart money models are disproportionately the profitable ones. Track your trade count as a ratio against the test and treat anything well under 100% as the first thing to fix.

Can a demo account tell me if my backtest was realistic? Partly. A demo reproduces real-time decision-making and roughly realistic spreads, so it catches the completed-candle problem and some cost effects. It can't reproduce the psychological pressure that causes skipped trades and moved stops, because the money isn't real — that only shows up live with size that matters to you.

Backtest it yourself — free.

Replay real market history candle by candle across 8 instruments. No card required.

Start free →

Keep reading

Backtesting

Out-of-Sample Testing: How to Prove Your Backtest Isn't Just a Story

Out-of-sample testing explained for manual backtesters: how to split your data, run a walk-forward test by hand, avoid look-ahead bias, and read the results without fooling yourself.

Aug 5, 2026·14 min read·Backtesting
Backtesting

7 Backtesting Mistakes That Make Your Results Worthless

The 7 backtesting mistakes that quietly turn your results into fiction — hindsight bias, cherry-picking, tiny samples and more — and how to fix each one.

Jul 14, 2026·8 min read·Backtesting
Backtesting

Backtesting vs Paper Trading vs Live: What Actually Makes You Better

Backtesting vs paper trading vs live trading: what each one actually teaches you, what it can't, and how to split your practice time to improve fastest.

Jul 14, 2026·8 min read·Backtesting
CRTLABCRTLAB

Trade ten years before you risk a dollar.

@crtlabpro

Product

  • Features
  • Pricing
  • Blog
  • Reference
  • Backtesting software
  • Candle-by-candle replay

Free tools

  • Position size calculator
  • Risk/reward calculator
  • Pip calculator
  • Compounding calculator
  • Prop firm challenge calculator
  • Backtest sample size calculator
  • Session & kill zone times

Backtest

  • NAS100
  • US30 (Dow)
  • Gold (XAUUSD)
  • Bitcoin (BTCUSD)
  • Forex

Strategy

  • CRT backtester
  • ICT backtesting
  • SMC backtesting

Company

  • Start free
  • Log in
  • Terms
  • Privacy
  • Refunds
  • Risk disclaimer

© 2026 CRTLAB. All rights reserved.

Not financial advice. Backtesting does not guarantee future results.