ÍP
← All work
QuantOption pricingNumerical methods

qStorm

Prices options from a forecast of an asset's return distribution, with no calibration to option quotes. The forecast's skew and fat tails become the volatility smile.

Under review: Quantile Stochastic Regression for Option Pricing · built on qCast

qStorm explorer: a forecast of tomorrow's return with a long left tail, the implied-vol surface qStorm prices from it as a 3D mesh, in black and red

The explorer runs qStorm in your browser. Draw a forecast of tomorrow's return, or pick one qCast really made, and see the implied-vol surface it prices against Black–Scholes, and how an option's value sharpens into its payoff as expiry nears.

Why

Option models are usually calibrated to option quotes: fit a smile to today's prices, then interpolate. That needs quotes, and many options have few or none, such as new listings, illiquid names, far strikes and new expiries. qStorm prices them from what is known about the asset itself, a forecast of its whole return distribution, and so gives a price where there is nothing to calibrate to.

How it works

  1. A forecast. qCast forecasts the full distribution of an asset's return at horizons from 1 to 42 days.
  2. A local volatility. If returns really follow the forecast, the asset moves as dS = μS dt + ϱS dW, with ϱ read straight off the forecast's quantile curve. Delta hedging removes the drift and leaves a pricing equation. When returns are Gaussian, ϱ is constant and the equation is exactly Black–Scholes. Otherwise the skew and fat tails of the forecast produce the smile.
  3. A solver. A finite-difference solve gives every strike and expiry at once. A physics-informed network trained on the equation prices any option in about 200 µs, within 0.11–0.18% of the solve (median). Baked into lookup tables, a price and delta take 6–12 ns.

Results

PreliminaryWork in progress and subject to change: one year of option quotes, with no market crash in the sample. More data is needed for a full evaluation; see below.

Held-out quotes from March to August 2023: 768,329 out-of-the-money quotes and 20,768 smiles on 45 US stocks and ETFs, up to 30 days to expiry.

2.20vol points median implied-vol error, with no option quotes, against 3.93 for the best quote-free rival
40–52%better than the best quote-free rival on every scale-free metric
3.13vol points on 23 assets the forecaster never trained on, against 4.80 for Black–Scholes
ModelMedian IV error (vol pts)Log-price RMSEW₁ on log prices
Priced from the asset's returns alone, with no option quotes
qStorm2.200.6320.376
Heston–Nandi, fitted to returns3.931.4100.691
GJR-GARCH-t, fitted to returns3.961.3130.630
Black–Scholes, qCast's vol4.141.3890.629
Black–Scholes, 30-day realised vol5.281.6460.922
Fitted to the same options' quotes from the day before
Sticky strike1.000.6860.241
XGBoost on yesterday's smile1.100.4350.187
MLP on yesterday's smile1.390.6640.276
Heston, refit every day1.460.6560.243
Neural SDE on yesterday's smile1.630.8310.304

Lower is better in every column. Log-price RMSE weighs cheap and expensive options alike; W₁ compares the whole smile's spread of log prices.

Against models that see the quotes

The second group is not a like-for-like comparison. Those models see yesterday's prices of the very options being scored, which is the market's own answer one day earlier, and implied vols move little from one day to the next. qStorm sees no option prices at all, only the asset's past returns, which is why it can price options that have no quotes. Even so, it holds its own on the shape of prices across strikes:

Backtests on simulated markets

qCast simulates joint paths of every asset, re-forecasting along the way, and qStorm marks the options along each path. A backtest on these paths says what a strategy's next quarter could look like, not only what its past did. On 8 stock strategies at 81 monthly origins from 2018 to 2024, the ranges the paths gave for the next 63 days held up against what really happened:

Share of real outcomesIdealSimulated paths: missHistorical backtest: miss
Inside the middle half50%0.9 pts (49.1%)13.4 pts (36.6%)
Above the 95% quantile5%2.4 pts (2.6%)3.6 pts (8.6%)
Below the 5% quantile5%4.1 pts (9.1%)4.6 pts (9.6%)
Average miss2.5 pts7.2 pts

Looking for option data

These results rest on one calm year of short-dated US quotes. To test qStorm properly, across regimes, markets and maturities and through stress periods, I am looking for historical option data for academic research. Partial coverage helps: any one of these would make a difference.

  • Most needed: US index, ETF and single-stock options, end of day, 2018 to now, with spot, dividends and rates.
  • Broader: the same for Europe and Japan, and futures, FX and crypto options.
  • Intraday: one-minute quotes on liquid US names, including same-day expiries.
  • Exotics and history: traded average-price (Asian) options, and US data back to 2010.

If you supply data and would like your name on the paper, please get in touch at [email protected]. I will happily send the full data request.