Skip to content
GetProfitable
Search
Dictionary

Live versus backtest gap

The routine shortfall between simulated and realised performance, whose causes are mostly known and mostly avoidable in the simulation.

Expect a gap and try to explain it rather than excuse it. The usual contributors are execution costs modelled optimistically, fills assumed at prices that were never available in size, survivorship in the instrument universe, look-ahead in the data, and the trades you did not actually take because you were away, hesitant or tilted.

Quantify each. Compare realised entry and exit slippage against the assumed slippage-budget; count executed signals against generated ones, which frequently reveals a 10-20% shortfall in discretionary implementation; and compare the live r-distribution with the backtested one to see whether the shape changed or only the level.

A gap of 10-30% of expected return is normal and survivable. A live result that is negative when the backtest was strongly positive is not a costs problem - it is evidence the backtest was fitted, and more discipline will not repair it.

Related: incubation-period, slippage-budget, backtesting, performance-attribution

See it drawn

Original diagrams for the ideas on this page. Illustrative, not real market data.

Slippage on a market orderA buy order clears four price levels, so the average price paid is worse than the price first quoted.Buy 1,000 shares at marketpricesell orders resting (bar length = size)20.04300 shares20.03200 shares20.01200 shares20.00300 sharesnothing resting at 20.02order sweeps up the bookaverage fill 20.02SLIPPAGE0.02 a share$20.00 in totalintended 20.00Each level fills at its own price; the average is what you really paid.
Slippage on a market order. You click at 20.00, but only 300 shares are resting there, so the rest of the order fills at 20.01, 20.03 and 20.04. The average price paid is 20.02, and that two-cent gap is slippage.

Educational only, not advice. Spotted an error? Post in Site Feedback.