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

Evidence checklist

What to record before trusting an options research result

The pages in this cluster are intentionally practical: a backtest, scanner, or dashboard should preserve the evidence that made each contract eligible and each fill plausible. The table is the minimum audit trail for option-specific execution realism.

CheckEvidence to keepDocs
Contract universeHistorical contract identity, listed expiration, strike, call/put type, and as-of contract metadata./docs/contracts
Executable marketBid, ask, midpoint, quote timestamp, quote size, and stale-quote handling around the decision time./docs/quotes
Trade confirmationNearby prints, sizes, exchange/condition codes, and whether prints support the assumed fill level./docs/trades
Liquidity gateSpread percent, volume, open interest, DTE, IV, and whether the contract should have been eligible./docs/option-chain

Related tools and docs