【Development Log】Why Do Backtest Numbers Tend to Be Too Optimistic? The Physical Friction of Spread and Slippage
Backtest results that draw a beautiful asset curve and the actual performance eroded after deploying real money. When we probe the root cause of this disparity, in many cases it is not the logic of the program itself, but the “too-ideal conditions” assumed by the validation environment. This time, I want to record two physical frictions, spreads and slippage, which are the main causes of this disparity. Among the three-axis validations recorded so far, this is the most fundamental part that underpins the survivability axis.
1. The "Ideal Environment" Premise of Backtesting
Many backtest tools treat the spread as a fixed value in default settings and calculate with zero slippage. This is a specification to simplify computations, not with malicious intent, but as a result, the friction present in actual markets tends to be underestimated in the results.
If you take backtest results at face value without understanding this premise, the moment you deploy to real trading, the expected values will crumble noisily. It isn’t that the logic has collapsed; rather, there is an unbridgeable gap between the validation conditions and the actual trading conditions. If you judge “the logic is bad” without understanding this structure, you may throw away the very framework that could be improved.
2. Friction of the Spread: Limitations of Fixed-Value Calculations
The spread (difference between bid and ask) constantly varies depending on currency pair, time of day, and market liquidity. It narrows in normal times, but around economic data releases or during low-liquidity periods it can temporarily widen by several times to tens of times. The magnitude of this variability is what makes fixed-value calculation models poorly compatible with real markets.
Backtests calculated with fixed values do not accurately reflect the costs of such “turbulent moments.” In particular, for logic that aims to breakout right after indicators are released, this gap can be fatal. The timing that looked advantageous in backtests may be the most costly in actual trading, creating a counterintuitive reversal. If you optimize parameters assuming only the normal average spread, you may miss opportunities to notice this reversal structure.
3. Friction of Slippage: The Gap Between Order Price and Execution Price
Slippage is the difference between the order price and the actual execution price. It tends to be larger when the market is moving sharply or when large orders cluster, and its occurrence pattern correlates strongly with market volatility rather than being purely random statistically. Ignoring this correlation and treating it with a uniform fixed value will grossly undervalue the actual cost in the most risk-prone scenarios.
In many backtesting environments, slippage is ignored or handled with an extremely small fixed value. But in real trading, slippage increases in situations where orders concentrate (at indicator releases, during sharp market moves), so the logic that should perform at its most advantageous moment ends up costing the most. This ironic structure arises when the friction is not accounted for, and the effect compounds with many trades, potentially changing the slope of the equity curve. Even a few pips per trade can scale to large annual costs with hundreds or thousands of trades, significantly altering the growth trajectory.
4. The "Apparent Advantage" That Disappears When Friction Is Incorporated
If you revalidate by incorporating spreads and slippage not at average levels but close to the worst-case levels, many logics that seemed fine under ideal conditions will greatly lose value or turn negative.
This is less about an intrinsic flaw in the logic and more about the loss of “apparent advantage” due to neglecting friction during validation. The more trades a logic makes, the more this effect compounds, often becoming a fatal flaw. Even if the per-trade cost difference is only a few pips, multiplying by hundreds or thousands of trades per year can substantially alter the asset curve’s slope.
5. Why the Lab Prioritizes Friction in Validation
As noted in previous development logs, the Lab places the physical laws of survivability and friction as the first axis in validation. This is not by chance; as documented so far, tolerance to friction is the most fundamental condition that determines whether a logic can survive in real operation.
No matter how refined the entry logic is, if incorporating friction eliminates the edge, it becomes mere theory. Conversely, a logic that retains its edge even after incorporating friction can be said to meet the minimum conditions for real-world viability. Therefore, in the Lab we have a step to mechanically check this friction tolerance before discussing the logic’s sophistication.
Why Semura Lab. does not ignore friction
For us at Semura Lab., spreads and slippage are not errors that can be fixed later; they are prerequisites that must be integrated from the validation’s earliest stages. Demonstrating performance under ideal conditions is only the first step of development; only after incorporating friction can the true strength of the logic be seen. Rather than presenting glossy validation results first and then discussing friction, we regard numbers that already include friction as the actual capability. In this development log, we will continue to honestly record these humble yet essential validation processes.