Backtesting term
Bid/ask spread
The bid/ask spread is the toll you pay just for trading right now: buy at the ask, sell at the bid, and the gap between them is gone before the position moves an inch.
Every quote is really two prices at once: the best bid, where someone will buy from you, and the best ask, a little higher, where someone will sell to you. Trade in either direction and you land on the worse side of that gap. Buy at the ask, sell at the bid, and the difference between them is gone before the position has even had a chance to move. It's a cost you pay on every round trip. Win or lose.
That sounds trivial until you count the trips. A strategy that fires a few times a year barely notices the spread. One that fires a few thousand times a year pays it a few thousand times, and the cost compounds into the return the same way commissions do, quietly, on every single entry and exit.
We model the spread from real tick data, actual best-bid and best-ask quotes pulled tick by tick, not a flat basis-point assumption bolted onto a close price. A backtest run on the midprice, the average of bid and ask, quietly deletes this cost from the ledger. The equity curve looks better. The strategy hasn't gotten any better. It just stopped paying for half of every trade.
The finer the timeframe, the more the spread bites, because the average price move per bar shrinks while the spread itself stays roughly fixed. Push down to sub-15-minute FX bars and the spread stops being a cost and starts being most of the trade. The signal is often real. It's just smaller than what it costs to harvest it. That's why we don't test FX and CFD strategies below the 30-minute chart at all, a category we treat as cost-fatal before a single backtest runs.
Spread isn't the same thing as slippage. Spread is the price of crossing the market right now, at the quote that's actually there. Slippage is what happens when the market moves between the signal and the fill. A backtest can get both wrong in the same direction: assume a midprice fill with no spread, and no delay with no slippage, and it will report an edge that a real account could never collect.
That's the whole reason spread earns its own line in every audit result. It isn't a rounding error tacked onto a strategy that clearly works. For a lot of high-frequency setups, it's the difference between a real edge and a mirage built entirely out of prices nobody could actually trade at.
How we model real trading costs →
The research behind this
- Sullivan, Timmermann & White (1999). “Data-Snooping, Technical Trading Rule Performance, and the Bootstrap.” Journal of Finance 54(5). — Shows that even a trading rule's best in-sample result stops beating the market out of sample once data-snooping is priced in — the same gap between a clean backtest and a real account that spread exposes.
- Brock, Lakonishok & LeBaron (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance 47(5). — The early study whose moving-average signals looked strong on raw Dow data, the kind of pre-cost result that real bid/ask spread and later scrutiny narrowed considerably.
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 →