Slippage
Slippage is the difference between the price at which a trade was expected to execute and the price at which it actually filled. In futures it is usually counted in ticks, and it is a cost that a backtest must model explicitly because historical data never records it.
Senzoukria · Glossary · Updated September 2026
Where slippage comes from
A market order is filled against whatever rests on the opposite side of the book at the moment it arrives. If the visible size at the best price is smaller than the order, the remainder fills at worse levels. If the price moves between the decision and the arrival at the exchange, the whole order fills at the new price. Stop orders convert to market orders when triggered, so they slip in fast markets exactly when the stop matters most.
- Thin book: not enough resting size at the best price for the order.
- Latency: the market moved during transmission.
- Stop triggers: the order enters the market during a burst of activity.
- Limit orders do not slip in price but may not fill, which is a different cost.
Modelling slippage in a backtest
Historical bars and even historical ticks show prices that traded, not the price a new order would have obtained. A bar-based backtest that fills at the close of the signal bar assumes zero slippage; a tick replay that fills at the next trade price still assumes the order was first in the queue. The usual correction is a fixed penalty per side in ticks, applied against the trade. Book replay can improve on this by walking the historical depth, but only when depth history exists for the period.
- Always apply slippage against the trade, never in its favour.
- Use a larger assumption for stops than for entries placed in calm conditions.
- Re-run the test with a wider assumption to see at what point the result changes sign.
In Senzoukria
The desktop backtest panel has a "Transaction costs" block with three inputs: "Point value ($)", "Round-trip fee per contract ($)" and "Slippage (ticks)". The panel's hint states that fees are applied to every trade and slippage always penalises the entry, and that setting them to zero turns a losing strategy into a winning one as soon as it trades often, which it calls the first way a backtest lies. The journal's session view applies no commission because the simulated account applies none, and says so in its note; the two views are therefore not directly comparable on cost.
Common mistakes
- Testing with zero slippage and then trading a strategy whose edge is smaller than one tick.
- Using the same slippage for calm entries and for stops hit during news.
- Assuming a limit order removes the cost; it converts price slippage into missed fills.
- Measuring slippage in points across instruments with different tick sizes.
Related
This page in other languages
Frequently asked questions
- How many ticks of slippage should a futures backtest use?
- There is no universal figure; it depends on the contract, the time of day, the order type and the size. A reasonable method is to record actual fills against intended prices in the journal and use the observed distribution, then test the strategy at a wider assumption to see how much margin it has.
- Does slippage affect limit orders?
- A limit order cannot fill at a worse price than its limit, so it does not slip in price. It can fail to fill, or fill only partially, when price touches the level without trading through it. That missed-fill cost is real but shows up as absent trades rather than as a price difference.
- Why does Senzoukria always apply slippage against the entry?
- Because a backtest cannot know that an order would have been filled favourably, and any symmetric model would sometimes credit the strategy with an advantage it never had. Penalising the entry is a conservative convention that keeps the test from flattering the rule.