Backtesting realism

Why Options Backtests Fail

Most options backtests fail because they model a cleaner market than the one the strategy would have traded.

Direct answer

Options backtests usually fail because they use today’s contract list, last price fills, incomplete quote history, weak liquidity filters, and entry timing that could not have been known at the time.

The hidden data problem

A valid options backtest starts with the contract universe that existed on the simulated date. If the model selects from current listings or ignores expiration availability, the result has stale-contract leakage before the first trade is evaluated.

The hidden execution problem

A last price is only a print. It does not prove the bid, ask, size, or spread available at entry and exit. Quote-aware fills force the simulation to pay attention to what was executable.

The practical fix

Use historical contracts, listed expirations, quote windows, trade evidence, and liquidity filters. Then run the same setup through a realism checker before comparing strategy variants.

Quote vs Trade Timeline

Bid, ask, midpoint, and prints show why last price alone is fragile.

CallsPuts

Bid/Ask Spread by Strike

Lower bars usually produce more defensible fill assumptions.

CallsPuts
485485490490495495500500505505510515

Related tools and docs