What slippage assumptions are
Slippage assumptions are the rules you use to represent the difference between a target execution price (for example, an expected fill based on a price chart or a mid price) and the price you actually receive when a trade is executed. In forex, this gap can come from trading costs and market microstructure effects such as bid–ask spread, fast price movement, and the delay between when you submit an order and when it is filled.
In backtesting, an assumption is needed because simulations normally cannot perfectly reproduce every moment of real execution. Instead, you define a practical way to adjust the simulated entry and exit prices. In forward testing (running the same strategy logic in a live or paper environment), the same assumptions can be used as a reference, but you also compare them with the observed execution outcomes to see whether the assumptions remain reasonable.
How slippage assumptions work in backtesting and forward testing
Core idea: execution is not instantaneous
A trading engine rarely gets a price at the exact timestamp it decides to act. Even with a “market” order, the fill price depends on available liquidity at that moment. Therefore, slippage assumptions translate an intended trade into an estimated execution result.
Common inputs you need
To keep slippage assumptions grounded, you typically base them on inputs such as:
- The reference price used by your simulation (for example, mid price, bid/ask, or last traded price).
- The rule for when the decision time is measured (bar close, bar open, or event-driven time).
- The assumed relationship between spread and execution price.
- A method for modeling price movement between decision and fill (for example, a fixed offset, a distribution, or a conditional rule).
Two typical ways to apply assumptions
-
Price adjustment at order fill: You modify the simulated fill price by adding or subtracting a slippage amount relative to the reference price. This produces a systematic “worse-than-ideal” execution when conditions are unfavorable.
-
Execution modeling using a slippage distribution: Instead of one fixed slippage value, you use a set of possible slippage values with associated probabilities. This reflects uncertainty and can produce different outcomes on repeated runs.
In both approaches, the consistency matters. The logic used during backtesting should align with how orders are actually filled in forward testing, including the reference price convention and the timing convention.
Verification loop
A useful workflow is to treat slippage assumptions as a hypothesis about execution behavior:
- Run backtests with the assumptions.
- Run forward testing and record actual fill prices.
- Compare the realized execution differences (target vs. executed) against the assumed slippage pattern.
- Update assumptions only if you have evidence that the execution process differs.
This loop helps you avoid overfitting your assumptions to a single period of market conditions.
Relevant limitations, risks, and how uncertainty shows up
Backtests can embed hidden optimism
If slippage assumptions are too mild, simulated trades may look better than they would be in real execution. This is not because the strategy logic is “wrong,” but because execution costs and timing uncertainty were not represented realistically.
The risk increases when:
- Trades occur during fast market moves.
- The strategy triggers many orders or relies on tight timing.
- The market spread widens or liquidity drops.
Mismatch between simulation and execution
Even if you include slippage, a common failure mode is a mismatch in definitions. For example, if the simulator uses mid price but the forward testing environment effectively references bid or ask at the time of fill, then “the same” slippage assumption may not represent the same economic reality.
Time period dependence
Execution conditions can vary over time due to volatility regimes and changes in liquidity. Slippage assumptions estimated from one historical window may not transfer cleanly to another window, especially if spreads and market depth behave differently.
Data quality and measurement uncertainty
Your ability to assess slippage assumptions depends on what you can measure:
- If you only have OHLC bars, you may not capture intra-bar price jumps that occur between decision and fill.
- If you cannot reliably reconstruct order timestamps, you may not know the true time offset that caused slippage.
Because of these limitations, treat the assumed slippage as an approximation rather than a precise reproduction of execution.
What to check independently to validate your assumptions
Compare distributions, not only averages
Average slippage can hide the tails. Execution events that are rare but severe often drive worst-case outcomes. Comparing the shape of the distribution (how frequently small vs. large slippage occurs) gives a more complete picture.
Keep reference conventions consistent
Check that the backtest reference price and the forward test execution reference are defined similarly. Otherwise, you may be “validating” against a different baseline.
Track assumptions across conditions
Verify performance of your slippage assumptions under different volatility and spread conditions. A single rule that works in calm markets may fail during stress periods.
Document assumptions so they can be audited
Slippage assumptions should be explicit and testable: what reference price is used, what timing offset is assumed, and how slippage is computed. This makes it possible to reproduce results and identify where a mismatch begins.
How slippage assumptions differ from related concepts
Slippage assumptions are an execution modeling choice, while other related concepts describe components or context:
- Spread is the bid–ask difference observable in quotes.
- Commissions and fees are account-level charges.
- Latency or execution delay describes time between decision and fill.
Slippage assumptions may incorporate some of these effects into a single execution adjustment, but you should still understand which effects your assumption is trying to represent and which ones are handled elsewhere in the model.
Under which market conditions slippage assumptions behave differently
Slippage behavior often changes when:
- Volatility increases, causing prices to move more between decision and fill.
- Liquidity decreases, making it harder to fill at the assumed price level.
- Spreads widen, increasing the cost of crossing from bid to ask (or vice versa).
These changes can make a fixed slippage rule less accurate and can require conditional assumptions that vary with measured spreads or volatility proxies.
Costs that can affect slippage assumptions
Execution-related costs that can be reflected inside or outside slippage modeling include:
- Bid–ask spread costs (often tied to the reference price choice).
- Fees and commissions (sometimes modeled separately, sometimes embedded in execution adjustments).
- Any consistent transaction cost that changes the effective fill price.
The key is clarity: decide whether these items are included as part of slippage assumptions or modeled separately, and keep that decision consistent across backtesting and forward testing.