A slippage model for backtests that isn't fantasy
Posted: Tue Oct 20, 2026 7:26 pm
Most backtests assume fills at the exact price. For scalping strategies, this makes results look much better than reality.
Building a realistic slippage model:
1. Collect real slippage data from your live trading (or a demo with live-like execution).
2. Analyse by order type, session and volatility.
3. Build a simple model:
- Market entries: slippage drawn from your actual distribution for that session.
- Stop exits: worse than market entries, especially at high volatility.
- Limit exits: zero slippage, but add a fill probability (e.g. 85% if price touches exactly).
Simple version for MT5 tester:
- Add a fixed slippage in points to every trade, e.g. 3 points on EURUSD.
- Run backtests with slippage 0, 3, 6, 10 points. If results collapse at 3, the strategy depends on perfect execution.
Advanced version (in Python):
- Draw slippage randomly from your empirical distribution.
- Make slippage depend on ATR at the time.
- Run Monte Carlo with many random draws.
What slippage assumption do you use in backtests?
Building a realistic slippage model:
1. Collect real slippage data from your live trading (or a demo with live-like execution).
2. Analyse by order type, session and volatility.
3. Build a simple model:
- Market entries: slippage drawn from your actual distribution for that session.
- Stop exits: worse than market entries, especially at high volatility.
- Limit exits: zero slippage, but add a fill probability (e.g. 85% if price touches exactly).
Simple version for MT5 tester:
- Add a fixed slippage in points to every trade, e.g. 3 points on EURUSD.
- Run backtests with slippage 0, 3, 6, 10 points. If results collapse at 3, the strategy depends on perfect execution.
Advanced version (in Python):
- Draw slippage randomly from your empirical distribution.
- Make slippage depend on ATR at the time.
- Run Monte Carlo with many random draws.
What slippage assumption do you use in backtests?