FXRISK Manual

Backtests Underestimate Slippage Twice

Use when: Any strategy with frequent trades, tight stops, or execution at ‘market’.

Your backtest has fills that never existed.

Mechanism

Most backtests assume an executable price (mid, close, or fixed spread). They don’t model queue position, adverse selection, or the way fills worsen when volatility rises.

Testing reality: backtests hide execution, spreads, and regime clustering. If your edge survives only in clean data, it’s a data story, not a trading edge.

  • Test with variable spreads and slippage by session.
  • Stress the tails: worst 1% days matter more than average days.
  • Prefer rules you can execute consistently over rules that optimize the past.
How it kills accounts
  1. You optimize a strategy where the edge is small and the turnover is high.
  2. The backtest assumes you get filled near the signal price.
  3. Live, entries slip and exits slip again, especially in fast moves.
  4. Your ‘small edge’ becomes negative expectancy with perfect consistency.

How it kills accounts:

  1. Model works on clean history.
  2. Regime changes and execution friction increases.
  3. Performance decays slowly, so you rationalize.
  4. You optimize parameters instead of reducing risk.
  5. Drawdown becomes the teacher.
Rule that survives
  • Apply a cost haircut before you trust any curve: spread + realistic slippage + a stress multiplier.
  • Model worst 5-minute conditions, not average conditions.
  • Demand a margin of safety: edge should be multiple times your total costs.

Rule that survives:

  • Stress test tails and execution, not averages.
  • Prefer robust plateaus over optimized peaks.
  • When performance decays, reduce risk before “fixing” the model.
Example archetype

A 1-minute breakout system looks great in-sample. Live, every breakout you buy is the one liquidity is selling into.

Tell: if small parameter tweaks flip your results, your model is fragile.

Deep dive

Deep dive

If you only model one thing, model bad fills when you most want good ones. Slippage is not a constant. It’s a regime-dependent variable.

A practical sanity check: rerun your results with costs doubled. If the strategy dies, the edge was never robust.

Glossary: queue position, market impact, slippage.


Variants merged

This page consolidates closely-related entries into one stronger canonical reference. Retired versions now redirect here.

Variant merged: Backtests Don’t Pay the Spread

Why it’s included: Variant emphasis: friction is not additive. Spread, slippage, and queue effects compound exactly when you size up or trade faster. If your model can’t survive the worst 5 minutes, it can’t be sized.

Truth line: If your strategy can’t survive realistic costs, it isn’t a strategy. It’s a chart artifact.

Mechanism add-on: Backtests often assume fills at bar open/close or mid. Real trading includes spread, slippage, commissions, financing, and rejects.

Failure add-on: Paper edge → live costs → smaller R → higher trade frequency to “make it work” → cost share increases → slow bleed.

Rule add-on: Stress test with worst-case spreads and slippage for your sessions. Measure edge after costs in ticks/pips, not % returns.

Variant merged: Mid-price Backtests Overstate Edge

Why it’s included: Variant emphasis: friction is not additive. Spread, slippage, and queue effects compound exactly when you size up or trade faster. If your model can’t survive the worst 5 minutes, it can’t be sized.

Truth line: If your backtest uses mid prices but you trade bid/ask, your edge is inflated by friction you didn't pay.

Mechanism add-on: Mid price is a convenience, not a tradable price. A strategy that 'wins' by a few ticks on mid can be a loser once you pay spread, commissions, and realistic slippage.

Failure add-on: Backtest on mid → confidence inflates → size increases → live trading pays bid/ask + slippage → expectancy flips negative → trader 'optimizes' → overtrading → drawdown.

Rule add-on: Backtest on bid/ask or include realistic spread + slippage models. Assume worse execution in volatility and low-liquidity hours.


Field checklist

  • Stress-test the tails. The worst days define survival.
  • Use variable spreads and slippage in testing.
  • Prefer robust plateaus over optimized peaks.
  • Look at drawdown shape, not only profit.
  • If a tiny parameter change breaks the model, the model is fragile.

Related truths