An options backtest should treat expiration as a contract event, not as a last-minute trade at the final displayed quote. The contract may settle against a special index, auto-exercise above a threshold, deliver shares, or stop trading before the underlying market closes. Those details decide what the position becomes and what cash moves.
I start with the exchange’s expiration rules, then trace the contract through its last tradable moment, settlement calculation, and any resulting delivery. A quote on the screen can help value an open position before that point. It does not define the expiration payoff.
Does an option expire at the time trading stops?
Usually, trading cutoff and expiration are separate events. An option may stop trading while its underlying continues to move. A European cash-settled index option, for example, can use an official settlement value calculated from a specified opening auction. The final option trade could be hours earlier and based on a different index level.
That gap creates risk for anyone holding through the cutoff. If the underlying moves across the strike afterward, the option’s settlement value can change while the option itself is no longer tradable. A backtest that closes every position at the underlying’s regular-session close can miss this exposure.
| Contract rule | What to model | Common shortcut that fails |
|---|---|---|
| Last trading time | When orders can still execute in the option | Assuming trading continues until the underlying closes |
| Settlement reference | The index, auction, or fixing used to calculate payoff | Substituting the last option quote or a nearby spot close |
| Exercise method | Automatic exercise, threshold, and any contrary instruction window | Exercising every in-the-money option identically |
| Delivery | Cash payment or the shares/futures created by exercise | Deleting an expired option without recording what replaces it |
How do I calculate a cash-settled option’s expiration value?
Use the contract’s official settlement reference and multiplier. For a call, the gross payoff per contract is max(settlement value − strike, 0) × multiplier. For a put, it is max(strike − settlement value, 0) × multiplier. Then apply the contract’s currency and cash-flow convention.
Suppose a cash-settled index call has a 5,000 strike, a 5,012.4 settlement value, and a multiplier of $100 per index point. Its gross payoff is $1,240 per contract. If the backtest substitutes a 5,009 last-trade value, it records $900: a $340 difference before fees. A small settlement mismatch can dominate a strategy’s typical trade profit.
Keep the official settlement value as a separate data field. It may be published after the option’s last tradable quote, and it may use a different calculation window. If your history has only a closing index value, mark the approximation and test how sensitive results are to plausible settlement differences.
What changes when exercise delivers shares?
Exercise can create a stock or futures position. An in-the-money call may turn into long shares bought at the strike; an in-the-money put may turn into short shares sold at the strike. The backtest then needs to carry that position forward, including its market exposure, financing, and any costs to close it.
That continuation matters near a dividend or when the strategy cannot hold the delivered asset. Some American-style options can be exercised early, and assignment can happen before expiration. A model that assumes every option stays open until the final day can therefore carry the wrong inventory into a material event.
Should I exercise an option that is barely in the money?
Follow the contract’s automatic-exercise threshold and cutoff rules. A venue may exercise options above a stated amount, while allowing an instruction to override that default during a limited window. A strategy that cannot submit such instructions should not quietly assume it can.
Near the threshold, the underlying can move between the last trade and the exercise decision. Record the price or settlement reference that governs the decision, the venue’s threshold, and what happens on either side. If the source does not provide enough detail to replay the choice, make the assumption explicit and run both outcomes. This is one place where a neat single equity curve can hide a very untidy operational rule.
What data should an expiration-aware backtest store?
Keep contract terms versioned by effective date. At minimum, store the last trading timestamp, expiration timestamp, settlement method, settlement reference and publication time, multiplier, exercise style, automatic-exercise threshold, and delivery rule. Link each expiration cash flow or delivered position back to the contract and settlement record that produced it.
Then inspect a few expirations by hand: one comfortably in the money, one out of the money, and one near the exercise threshold. Reconcile the modeled cash flow with the venue’s contract specification and settlement record. If those three cases behave correctly, you have a much stronger basis for trusting the rest of the expiration history.
← All posts


