
Why Your Backtest Results Don't Match Real Trading
Every systematic trader eventually faces the same painful realization: the strategy that returned 120% in backtesting is barely breaking even — or losing money — in live trading. This gap is not a bug in the backtesting software. It's a fundamental feature of how backtests work versus how real markets work. Understanding the five sources of this gap is essential for building strategies that translate from historical simulation to live profitability.
The Five Sources of the Gap
1. Slippage
Backtests typically execute trades at the exact price specified — the close of the signal candle, for example. In reality, market orders fill at the best available price, which is often slightly worse than the signal price. During fast-moving markets, slippage can be significant.
| Asset | Normal Slippage | High-Vol Slippage | Impact on Strategy |
|---|---|---|---|
| BTC (Binance) | 0.01–0.03% | 0.1–0.5% | Minor for swing, significant for scalping |
| ETH (Binance) | 0.02–0.05% | 0.1–0.5% | Moderate impact on high-frequency |
| Altcoins (mid-cap) | 0.05–0.2% | 0.3–1% | Can destroy scalping edges |
| Altcoins (low-cap) | 0.2–1% | 1–5% | Only viable for position trading |
2. Overfitting
The most insidious cause. When you optimize a strategy across historical data, you inevitably capture some noise along with the signal. A strategy with 5 optimized parameters on 2 years of data has found patterns specific to that exact period — patterns that may never repeat.
3. Market Impact
Your backtest assumes your orders don't affect the market. In reality, every market order consumes liquidity. For large positions on less liquid assets, your buy order pushes the price up before you're fully filled — and your sell order pushes it down. This is invisible in backtests but very real in live trading.
4. Execution Delays
The signal fires at the candle close. You see it, click the button, the order reaches the exchange, and it fills. Total time: 1–5 seconds at best. In that time, especially on 1-minute or shorter timeframes, price can move significantly. Backtests execute instantly; reality doesn't.
5. Regime Change
Markets evolve. What worked in the 2020–2021 bull market may not work in 2025's market. Correlations shift, volatility patterns change, participant mix evolves. A strategy perfectly calibrated to past conditions degrades as conditions change.
Execution Quality Differences in Detail
The gap between backtest fills and live fills compounds across every single trade:
Order book depth. A $10,000 market buy on BTC might consume three price levels, resulting in a weighted average fill 0.02–0.05% worse than displayed. On a mid-cap altcoin, the same order might consume five or more levels, yielding 0.1–0.3% slippage. Backtests do not model order book depth.
Latency variation. Exchange API response times range from 10ms to 500ms depending on load. During volatile moments — exactly when many signals fire — latency spikes as exchanges throttle incoming orders. A strategy that works at 50ms latency may fail at 200ms.
Partial fills. Large orders frequently fill in portions. The first 30% fills at the target price, but the remaining 70% fills at progressively worse levels. Backtests assume 100% instant fills, systematically overestimating performance.
Psychological Factors Absent in Backtests
A backtest executes every signal without hesitation or emotion. Human traders do not. The psychological dimension is entirely absent from historical simulations:
Loss aversion after drawdowns. After three consecutive losing trades, most traders reduce position size or skip the next signal. The skipped trade is often the one that starts the recovery. Backtests take every signal regardless of recent performance.
Revenge trading. Following an unexpected loss, traders frequently override their system — increasing size to “make back” the loss or holding losers beyond the stop level. Each override degrades live performance relative to the disciplined backtest.
Fatigue and attention gaps. A backtest never sleeps or misses signals. Live traders miss signals, misread charts, and make data-entry errors. Over hundreds of trades, these small errors accumulate into measurable performance drag.
Minimizing the Gap
Include slippage in backtests: Add 0.05–0.1% slippage per side. If your strategy is still profitable, the edge is likely real.
Out-of-sample validation: Optimize on 70% of data, validate on 30%. If validation results are similar, the patterns are likely genuine.
Minimum trade count: Require at least 50 trades for statistical significance. Below 30, results are essentially noise.
Limit optimized parameters: 2–3 parameters maximum. Each additional parameter increases overfitting exponentially.
Multi-asset testing: Does the strategy work on BTC, ETH, and SOL with the same parameters? Cross-asset robustness is a strong indicator of genuine edge.
Expect live performance to be 30–50% worse than backtested performance. If your backtest shows 100% annual return, plan for 50–70% in reality. Build a margin of safety into every strategy.
FAQ
Why does my strategy perform worse live?
Five causes: slippage, overfitting, market impact, execution delays, and changing market conditions. The backtest-to-live gap is universal — expect 30–50% performance reduction.
How much slippage to expect?
BTC: 0.01–0.05% normal, 0.1–0.5% volatile. Altcoins: 0.05–1%+. A strategy making 0.3% per trade loses two-thirds of its edge with 0.1% slippage per side.
How to make backtests more realistic?
Include 0.05–0.1% slippage, add fees, validate out-of-sample, limit optimized parameters to 2–3, ensure 50+ trades minimum.
Further Reading
About the Author
Trading systems developer and financial engineer. 10+ years building automated trading infrastructure and backtesting frameworks across crypto and traditional markets.
FAQ
Why does my strategy perform worse in live trading?▾
Five main causes: (1) Slippage — live fills are worse than backtest assumes. (2) Overfitting — strategy tuned to past noise, not real patterns. (3) Market impact — your orders move the price in live trading but not in backtests. (4) Execution delays — milliseconds matter for fast signals. (5) Changing market conditions — the future doesn't replicate the past exactly.
How much slippage should I expect?▾
For BTC on major exchanges: 0.01-0.05% per trade for market orders during normal conditions. For altcoins: 0.05-0.5% depending on liquidity. During volatile events: 0.1-1% or more. A strategy that makes 0.3% per trade on paper but faces 0.1% slippage each side has lost two-thirds of its edge. Always include slippage in backtests.
How do I make backtests more realistic?▾
Include realistic slippage assumptions (0.05-0.1% per side for crypto). Add trading fees. Use out-of-sample validation — optimize on one period, test on another. Avoid excessive optimization parameters. Ensure adequate trade count (50+ trades minimum for statistical significance). These steps won't eliminate the gap but dramatically reduce it.
Further reading
Related articles
Comments (0)
Loading comments...

