Your options backtest is only as honest as its data
Xavi ·
Options history is messy.
A stock strategy may need a price series and a few corporate-action adjustments. An options strategy needs changing chains of contracts, expirations, strikes, bid and ask quotes, and an underlying price that lines up with each decision.
That extra detail creates more ways for a backtest to be quietly wrong.
Daily data misses the day
Imagine a same-day spread entered at 10:00, stopped at 11:20, and closed before the bell. A daily bar cannot show the sequence of prices inside that session. It knows the open, high, low, and close, but not which came first.
That ordering problem can change the outcome. The daily high might imply that a stop was touched, while the close suggests the profit target was reached. Without intraday data, the simulator has to invent a path or avoid the question.
Minute-level data gives the test much more to work with. It can evaluate intraday signals and option quotes near the decision time. It still compresses activity inside each minute, so it should not be mistaken for a complete market replay.
Frequency should match the strategy. A position held for months may not need second-by-second data. A 0DTE system probably needs more than daily candles.
The option chain keeps changing
Contracts appear, expire, move in and out of the useful strike range, and sometimes show poor or missing quotes.
A rule such as “sell the 15-delta put” sounds exact. In practice, no contract may sit at 15 delta. The nearest one might be several points away, or its quote may be stale. The test needs a contract-selection rule and a fallback.
This is why selected contracts belong in the output you review. If the summary says 300 trades, inspect a sample of the actual expirations, strikes, and deltas. You are checking whether the simulator tested the position you had in mind.
Bid and ask matter
A last-traded price can be old. It may reflect a tiny trade completed before the underlying moved.
Bid and ask quotes give a better view of the market available at that moment, though they create their own questions. Was there real size behind the quote? Could a complete spread have filled near the displayed net price? How quickly did the market change inside the minute?
Historical data cannot answer every execution question. It can at least keep the assumptions visible.
Be wary of a dataset that offers a single clean option price without explaining where it came from.
Missing data is a result, not an inconvenience
When a quote is missing, a backtester has choices. It can skip the trade, carry forward an older value, substitute another price, or fail the run.
Each choice changes the experiment.
Skipping may remove difficult periods when liquidity was poor. Carrying a quote forward may create a price nobody could have traded. Silently filling the gap is the worst option because the user never learns that the evidence was incomplete.
Review skipped trades and warnings. A strategy that appears selective may simply be encountering gaps in the available chain.
Time alignment can create accidental foresight
Look-ahead bias happens when a strategy uses information that was not yet available.
The obvious example is entering at 10:00 based on the day’s closing price. More subtle versions occur when an indicator includes the current minute’s completed high or low before that minute has finished, or when an option quote is paired with a later underlying price.
The signal time, the data cutoff, and the assumed fill time should be separate and explicit. If a signal is evaluated using the 10:00 minute, does the order fill at 10:00 or on the next available observation? There is no universal answer, but there must be an answer.
Ask the data boring questions
Before trusting the attractive chart, check:
- Which underlyings and expirations are covered?
- Are quotes intraday, and at what frequency?
- Does the dataset include bid and ask?
- How are missing or crossed markets handled?
- How does the system align underlying and option timestamps?
- Can you inspect the contracts and fills selected by the strategy?
Boring questions are cheap. Discovering a data problem after months of paper trading is not.
StratVerra hosts minute-level historical options data, so traders can test without building and maintaining their own options database. Hosted data removes a large engineering job. You still need to match the data and its limits to the strategy you are studying.
The next article tackles the assumption most likely to turn a modest edge into a fantasy: fill price.