Direct answer
In forex, “slippage assumptions” are simplified rules used to model how an order’s executed price can differ from the price you intended or observed when you created a calculation. In practice, slippage assumptions aim to translate execution uncertainty into an estimated cost (or sometimes a benefit) that can be included in backtests, forward tests, or any simulation of trading performance. The key idea is not to predict what will happen in the future, but to make a consistent, explicit assumption about how trades may fill.
Mechanism and definition
Slippage is the gap between an order’s reference price (for example, the price used when a signal is generated or the midpoint at decision time) and the actual fill price (the price your system receives). Slippage assumptions convert that gap into something your model can compute.
A simple way to understand the workflow is to separate four elements:
- Reference price: the price your model uses as the “start point” for a trade calculation.
- Fill price rule: the assumed process that determines the fill price from the reference price.
- Direction handling: whether the rule moves prices against you or can vary in either direction.
- Total cost accounting: how slippage interacts with other execution costs such as spread and commissions (if your simulation includes them).
A minimal model
Most slippage assumption setups boil down to one of these approaches:
- Fixed slippage (constant in pips or points): You assume every execution is worse by a constant amount. For example, you might say a buy fills reference price minus X, and a sell fills reference price plus X.
- Rule-based by order side and timing: You may apply different offsets depending on whether the simulated order triggers at bid/ask, on candle boundaries, or when using a particular bar close/open convention.
- Random slippage from a range or distribution: Instead of one constant value, you sample slippage from a chosen range. This is still an assumption, because the distribution must be specified without relying on real-time fills.
- Liquidity- or volatility-linked slippage: You tie the slippage amount to a proxy like volatility or a liquidity measure used in your simulation. This can be more realistic, but it can also become complex and easy to overfit.
Inputs you must state
To use slippage assumptions in a way someone else can verify, you need to specify inputs such as:
- Measurement unit: pips, points, or percentage of price.
- When it applies: at order entry only, at exits, or at both.
- How it scales: whether slippage changes with order size or stays constant.
- Side conventions: how you map buy/sell to bid/ask direction.
- Interaction with spread: whether your reference price is mid, bid, or ask, and whether you already included spread separately.
Evidence or example (with explicit assumptions)
Consider a simulation that uses a “mid price” as the reference price. You define the following assumptions:
- Reference price: mid = (bid + ask) / 2 at the decision moment.
- Spread: you simulate a fixed spread of S (measured in points or pips).
- Slippage assumption: execution moves against the trader by Slp.
- You apply slippage on both entry and exit.
Example calculation logic
For a buy order:
- The midpoint at decision time is mid.
- If you already modeled spread separately, you need to decide whether the fill should start from bid or ask. A common modeling choice is:
- Bid = mid − S/2
- Ask = mid + S/2
- Because a buy generally fills near the ask, you might take a starting fill basis of ask, then apply slippage against you:
- fill_price ≈ ask − Slp
For a sell order:
- A sell generally fills near the bid. With a similar convention:
- fill_price ≈ bid + Slp
This illustrates the “sequence” aspect: your fill price depends on (a) the reference price definition, (b) the spread handling choice, and (c) the slippage rule. If you change any one of these, the resulting trade P&L in your model changes—even if you keep the same Slp value.
What the output represents
In the simulation output, slippage assumptions usually appear as:
- Estimated fill price (or an estimated price adjustment).
- Per-trade cost impact (difference between reference-based P&L and fill-based P&L).
- Aggregate performance differences (drawdown, profit factor, total returns), all of which should be treated as conditional on your assumptions.
Limitations and failure modes
Even if slippage assumptions are applied carefully, several limitations can cause simulations to misrepresent real execution:
-
Assumption mismatch Slippage is not one thing. It can come from delays, partial fills, quoting behavior, and market impact. If your model treats slippage as a constant offset, it may not capture the conditions where slippage actually changes.
-
Missing execution components A frequent error is double-counting or omitting costs. For example, if your reference price already implies bid/ask, but you also model spread and slippage as separate deductions, you may distort costs. Conversely, leaving out commissions or fees can make costs look smaller than they are.
-
Timing ambiguity Forex order fills depend on when the order is placed relative to price updates. If your backtest assumes fills at candle open or close, slippage behavior can be biased. This is a modeling choice; it must be stated and tested.
-
Distribution assumptions can be arbitrary If you sample slippage from a range or distribution, you must justify it using a method consistent with your simulation environment. Otherwise, the results may reflect the randomization settings rather than plausible execution behavior.
-
Historical relationships do not ensure future results Even if you calibrate slippage assumptions using historical data, market structure and execution conditions can change. Your slippage model is therefore a scenario tool, not a forecast.
Verification and next question
You can independently verify whether your slippage assumptions are internally consistent by checking three points:
- Price convention audit: Confirm whether your simulation uses mid, bid, or ask as the reference, and ensure the buy/sell fill logic aligns with that convention.
- Cost accounting audit: Verify that spread, commissions/fees (if included), and slippage are either separated correctly or combined without double-counting.
- Sensitivity testing (conceptual): Change slippage assumptions in a controlled way (for example, higher vs. lower offsets) and observe how sensitive the outcomes are. Large sensitivity suggests your model is heavily dependent on the assumed execution gap.