Failure mode
Intrabar / bar-by-bar fill assumption
A bar only shows four prices, not the order they happened in. Guess that order wrong, and a trailing stop gets a fill it could never have gotten live.
A daily or hourly bar only shows four numbers: open, high, low, close. It hides the order those prices actually occurred in. A backtester has to guess that order to decide whether a trailing stop or a limit order would have filled. The naive guess is where the trouble starts.
Most cheap backtesting engines assume a fixed sequence inside every bar, something like open, then high, then low, then close. Real price action doesn't respect that script. A bar can spike to its high, retrace to its low, and close back near the open, in any order, dozens of times if you zoom into the ticks underneath it. Assume the wrong sequence and a trailing stop gets credited with an exit fill at a price the strategy never could have touched at that moment. The engine rewards a trade that isn't real.
Trailing-stop systems take the worst of it. Their entire edge is claimed to come from riding a move and cutting losses fast, which means the exact intrabar sequence decides almost every trade's outcome. Get the sequence generous and the equity curve looks smooth. Get it realistic and the same rules bleed. It's a close cousin of look-ahead bias, minus the literal glimpse of the future. Just a friendlier version of the past, handed over one fill at a time.
We measured the gap directly: running trailing-stop strategies on a naive bar-by-bar fill model against a realistic intrabar model built from tick data overstates performance by 42 to 84 percent. That's not noise. For a chunk of the strategies we test, that gap is the entire edge being sold. Strip it out and the strategy is flat or worse. Slippage compounds it further, since a fill that was never really available also skips the cost of getting it.
A better parameter won't save this. The backtest is being asked a question it can't honestly answer. Sub-daily and intraday systems need bar data fine enough to reconstruct a believable path through the candle, not a coin-flip guess at high-then-low or low-then-high. Anything less, and the backtest is grading a fill that never actually happened.
The research behind this
- López de Prado (2018). “Advances in Financial Machine Learning.” Wiley. — Covers how backtests leak future information; the same leakage logic applies when a fill model hands a trade a price it couldn't have gotten.
- Aronson (2006). “Evidence-Based Technical Analysis: Applying the Scientific Method and Statistical Inference to Trading Signals.” Wiley. — Sets the evidence bar for trading signals in general, the same rigor an intrabar fill assumption has to survive before its edge counts as real.
External research, linked for context and further reading. FoxAlgo is independent and not affiliated with these authors or publishers.
These are the terms behind The No List — the full audit, every strategy and indicator named, with its verdict and the exact reason it lived or died.
Get The No List →