Challenges in Modeling Intraday Prices for Zero-Day Options
Summary
The document describes an attempt to model intraday price changes in SPX options that expire the same day. The goal is educational: to explore how option values respond to movements in the underlying index and volatility, especially near expiration, rather than to build a trading or execution system. The author reports using QuantLib with European and early-exercise pricing engines and a Heston volatility process.
The reported problem is that model values are consistently below observed market prices, at times by a large margin. The author suspects the volatility process may be unsuitable so close to expiry and asks for guidance. The document does not include a proposed fix, market data, calibration details, or an answer, so it does not establish why the model underprices. It serves as a focused modeling question about the limitations and inputs involved in short-dated option valuation.
Key ideas
- The stated use case is to study intraday option price dynamics rather than to trade.
- The example focuses on SPX options expiring on the same day.
- The author combines standard option pricing engines with a Heston volatility process.
- The author observes persistent underpricing but provides no diagnosis or validated remedy.
Tags
Full text
# How to price 0DTE options? # How to price 0DTE options? I am trying to write a function that uses Quantlib to price 0DTE options. The use-case isn't real-world trading or pricing, it's a tool for myself to roughly model option-price dynamics relative to moves in the price underlying, all intraday. And honestly, I'd be happy if my function works for SPX options specifically and nothing else. I don't need the pricing function to be very accurate, but I would like the prices it outputs to be somewhat realistic in terms of what I'd see in the market. My ultimate goal here is to build some intuition for how option prices vary as volatility and underlying prices move intraday, particularly in the last few hours before expiration. My pricing function currently uses Quantlib (compiled with intraday support) with a `BlackScholesMertonProcess` with the `AnalyticEuropeanEngine` or `BjerksundStenslandApproximationEngine` (depending on exercise type) and a `HestonProcess` for the volatility. The Heston process has `kappa=0.5, theta=volatility^2, sigma=0.8, rho=-0.6` (volatility is an input to the function). The issue I'm encountering is that the function consistently underprices, sometimes by as much as 100%. My suspicion is that the Heston process is not the right tool to model the volatility this close to expiration, but I'm not sure. Any pointers?
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.