Calibrate the SABR stochastic volatility model to SPX implied volatility surfaces and benchmark smile-aware delta-hedging strategies against the Black–Scholes baseline.
- Data pipeline — loads WRDS OptionMetrics SPX call options (Feb 2023), fits a Nelson–Siegel–Svensson yield curve to US Treasury data, constructs forwards and computes baseline BS deltas.
- SABR calibration — two-stage multi-start least-squares with vega weighting: ATM-anchored α, then (ρ, ν) via TRF, with 3D fallback for ill-conditioned slices.
- Delta computation — three smile-aware deltas (SABR, Bartlett minimum-variance, sticky-strike) alongside the flat BS delta.
- Hedging evaluation — SSE-based gain metric across a 9×7 delta–maturity grid, τν² threshold analysis, daily performance diagnostics.
- General-β extension — verifies near-invariance of hedging deltas across β ∈ {0, 0.5, 1} for a fixed implied volatility fit.
Lognormal SABR on SPX produces negative Bartlett gains: fitting the steep equity skew forces |ρν| ≈ 1.2, pushing delta corrections to ±5–12 pp — beyond what daily hedging can absorb. This is structural (τν² ≫ 1 regime where Hagan's approximation breaks down), not a calibration bug. Gains turn positive when restricted to the τν² ≤ 0.25 validity region, but this filters out most of the sample.
pip install -r requirements.txt
# Full pipeline with plots
python main.py
# Skip plots (e.g. on a server)
python main.py --no-plots
# Custom data path
python main.py --data path/to/options.csvPlace WRDS OptionMetrics SPX options data in data/option20230201_20230228.csv. Expected columns: date, exdate, symbol, strike_price, best_bid, best_offer, impl_volatility, delta, cp_flag.
Treasury yield data is downloaded automatically from the US Treasury website.
- Hagan, P. et al. (2002). Managing Smile Risk. Wilmott Magazine.
- Bartlett, B. (2006). Hedging under SABR Model. Wilmott Magazine.
- Hull, J. & White, A. (2017). Optimal Delta Hedging for Options. Journal of Banking & Finance.