Methodology guide

Why Slippage, Spread, and Fees Change Backtest Results

A strategy that looks strong before costs can become mediocre once slippage, spread, and fees are treated realistically. Backtesting is only useful when trading friction is part of the picture.

Many backtests look cleaner than live trading ever will because the friction of actual trading is either minimized or ignored. A trader sees a smooth historical curve, assumes the strategy has a real edge, and only later discovers that spread, slippage, and fees were large enough to change the conclusion.

Why trading costs change a backtest so much

Backtesting is meant to estimate how a strategy behaves under plausible conditions. That estimate breaks down quickly if the model assumes every entry fills perfectly, every exit occurs at the intended price, and transaction costs are negligible.

This matters most for strategies that trade frequently, operate on lower timeframes, or target relatively small moves. In those cases, even modest friction can reshape the outcome because each trade starts with a larger handicap relative to the expected gain.

As explained in how to avoid overfitting in backtesting, one reason strategies look better in-sample than they perform later is that the test environment is unrealistically clean. Cost assumptions are part of that problem.

How slippage and spread affect the result

Spread is the gap between the bid and ask. Slippage is the difference between the price you expected and the price you actually get. Fees are the direct charges attached to trading. All three reduce the room a strategy has to be profitable.

Investopedia’s explanation of slippage is a useful baseline: the executed price can differ from the expected one, especially in volatility or thinner liquidity. That is not a platform quirk. It is part of the trading environment a backtest is supposed to reflect.

Where traders usually make the wrong assumptions

The most common error is assuming that costs are too small to matter. That assumption is often false precisely on the strategies that look most attractive at first glance.

  • fees are excluded entirely
  • spread is treated as if it were zero or constant when it is not
  • slippage is ignored even in volatile conditions
  • the strategy is judged by gross profit instead of net performance

This also connects to common backtesting mistakes. Weak cost assumptions are often not a separate problem. They are one of the main reasons a backtest becomes less trustworthy than it appears.

How to model costs more realistically

You do not need a perfect simulation of real-world execution to improve a backtest. You need assumptions that are conservative enough to challenge the strategy instead of flattering it.

  • include explicit fees or commissions where relevant
  • account for spread on entries and exits
  • assume some slippage when the market or setup makes it plausible
  • review net outcome, not just gross outcome

Weak assumption

Every trade fills at the ideal price and the cost line barely exists.

Better assumption

Costs are modeled in a way that forces the strategy to survive realistic friction.

Best mindset

It is better to disappoint the strategy in testing than to be surprised by reality later.

A useful backtest should not ask whether a strategy can make money in a frictionless world. It should ask whether the logic still holds once trading becomes expensive enough to resemble the market you actually intend to trade.

Net performance is the only performance that matters

Slippage, spread, and fees are part of the strategy environment. The closer your assumptions are to reality, the more trustworthy the backtest becomes.