50% off Pro's first year — codePRO50

8 min readBacktestingRisk Management

7 Backtesting Mistakes That Blow Up Live Accounts

The specific errors that make a backtest look profitable and a live account lose money — look-ahead bias, curve fitting, cost modelling, and how to catch each.

Every trader who has gone live with a strategy that tested beautifully and then bled money has met at least one of these. They are not exotic. They are the ordinary, repeatable ways a backtest ends up describing a world that does not exist.

1. Look-ahead bias

The strategy uses information that would not have been available at the moment of the decision. It is the most damaging error on this list because it produces genuinely impossible results that look plausible.

The usual causes:

  • Evaluating a condition on the current bar before that bar has closed, using its final values
  • Using an indicator that repaints — one whose historical values change as new data arrives
  • Referencing the session high or daily close in a rule that fires before the session or day is over

How to catch it: if your equity curve is unusually smooth, or your win rate is above roughly 70% with a favourable risk-reward ratio, be suspicious. Then check specific trades — take an entry and confirm every piece of information the rule used was actually knowable at that timestamp. Forward testing on demo also exposes it immediately, because live results diverge violently from the backtest.

2. Curve fitting

You tune parameters until the equity curve looks good on your sample. With enough parameters and enough attempts, you can fit anything.

The tell is sensitivity. If a moving average period of 21 is excellent and 20 and 22 are mediocre, you have found an accident of your data, not a property of the market. Robust parameters sit in plateaus — a broad region of values that all work acceptably.

How to catch it: run a sweep across each parameter and look at the shape of the results. Spikes are noise; plateaus are signal. Keep the number of tunable parameters low, and hold out data you never tune against.

3. Ignoring or underestimating costs

Spread, commission, swap and slippage. Covered in detail in our guide to MT5 backtesting, but it earns its place here because it is the most common single cause of the backtest-to-live gap.

The specific traps: modelling the broker's advertised "typical" spread rather than the real distribution including news and rollover; omitting commission entirely on raw-spread accounts; forgetting swap on multi-day holds; assuming zero slippage on market orders.

How to catch it: re-run with costs inflated by 50%. If the strategy dies, your margin was never real.

4. Too small a sample

Thirty trades is an anecdote. Random sequences produce impressive short runs constantly, and a strategy that made money over three months of one market regime has demonstrated nothing about its behaviour in a different one.

How to catch it: count your trades, and separately check the calendar span. Aim for a few hundred trades across several years and deliberately include periods hostile to your approach — a trend system through a range, a mean-reversion system through a strong trend.

5. Survivorship and selection bias in the instrument list

You test on EURUSD, GBPUSD and Gold because those are the ones you already know behave well for your approach. The strategy looks strong. But the selection itself encoded prior knowledge of what worked.

The equity-market version is more famous — backtesting on today's index constituents, which by construction excludes everything that got delisted — but the currency and CFD version is the same mistake in a smaller costume.

How to catch it: decide your instrument list before testing, using a rule that does not depend on results (for example: the eight most liquid majors). Then report the result across all of them, including the ones that did badly.

6. Optimising on the data you then report

Related to curve fitting, but distinct and worth separating. You optimise across your full history, then present the optimised result as the expected performance. That number is not an estimate of future performance; it is the maximum of a search over your sample, which is biased upward by construction.

How to catch it: split in-sample and out-of-sample before you begin. Tune only on in-sample. Run out-of-sample exactly once, and report that number. If you go back and tune again, you need fresh data for the next honest read. Walk-forward analysis automates this properly.

7. Ignoring the path, only the destination

Two strategies with identical net profit and identical maximum drawdown can be completely different propositions. What matters in practice is whether you can actually sit through the bad stretch without turning the system off — and the longest losing streak usually breaks people well before the deepest drawdown does.

This matters doubly under prop firm rules, where a path that dips 6% intraday fails a 5% daily cap regardless of where it closes. That is covered in backtesting a prop firm challenge.

How to catch it: look at the longest losing streak, the drawdown duration (not just depth), and the equity curve itself rather than the summary. Ask honestly whether you would still be running the strategy in month seven of a flat stretch.

The habit that catches most of them

Open the trade list and read the first twenty trades individually. Confirm each fired for the reason you intended, at a time the information was available, at a price that was realistically obtainable.

It takes fifteen minutes and it catches look-ahead bias, specification errors, and cost-modelling mistakes far more reliably than staring at the summary report. The summary is designed to be reassuring. The trade list is where the truth is.

Then forward test on demo before risking money. A backtest is a filter for bad ideas — its most valuable output is a clear "no", delivered before it costs you anything.

Test it before you trade it

Raw Edge lets you build strategies visually, backtest them with realistic spread and commission, and deploy the same logic straight to MetaTrader 5.

See pricing

More reading