Expand description
§Pricing: what an option costs
We have 25 years of stock prices but no historical option quotes. So we reprice options with Black-Scholes, the textbook formula that turns (spot, strike, time, volatility, interest rate) into a fair price.
The one input Black-Scholes cannot know is implied volatility: the
market’s own forecast of how much the stock will move. Get that wrong and
the whole backtest is fiction, which is why sim.rs uses, in order of
preference:
- Real Cboe volatility indices (VIX for SPY, VXN for QQQ, VXD for DIA, GVZ for GLD, OVX for USO), daily since 2001-2008; then
- a proxy fitted to those indices from realized volatility
(
Sd2Model::iv_proxy, ρ ≈ 0.94), clearly flagged in every report.
Volatility indices measure a 30-day variance swap level, which sits a little above at-the-money implied volatility because of put skew; we take ATM IV = 0.88 × index and add a simple linear skew so that out-of-the-money puts cost more than calls, as they do in real life.
Enums§
Constants§
- ATM_
FROM_ INDEX - ATM implied vol from a vol-index level (both annualized, as fractions).
Functions§
- bs_
price - Black-Scholes price per share.
tin years,sigmaannualized. - implied_
abs_ move - Mean absolute move implied by an annualized vol over
daystrading days:σ·√(days/252)·√(2/π). Comparable to SD’sexpected_move_pct. - norm_
cdf - Standard normal CDF (Abramowitz & Stegun 7.1.26 via erf, |error| < 1.5e-7).
- skewed_
iv - Skewed implied vol at
strike: puts below spot are dearer.