Skip to content

Real SPX data + historical VIX backtest (≥95% within ±0.5 pts) #31

Open

Description

@obchain

Scope

Split out of #3. The VIX math implementation + synthetic validation shipped in #30 (math RMSE ~6e-4 across 10–50% IV sweep). This issue tracks the real-data half of the original #3 acceptance criterion: ≥95% of historical days within ±0.5 pts of the published VIX.

Tasks

  1. Source SPX historical option chain data. Candidates:
    • CBOE DataShop (free sample + paid bulk)
    • Wharton WRDS (academic access)
    • OptionsDX (paid commercial)
  2. Source published VIX historical series. CBOE daily closes (free); intraday via VIX futures replica or DataShop.
  3. Wire data loaders into research/vix-spx-replication.ipynb §13.
  4. Run per-date backtest loop over a 30+ trading day window using the existing compute_vix(...) driver.
  5. Validation report: histogram of |residual|, RMSE, days within ±0.5, outlier table (date, near/next expiries, strip sizes, K₀, F, σ²_1, σ²_2).

Acceptance

  • ≥95% of trading days within ±0.5 pts
  • Outlier table populated with diagnostics for each missed day
  • RMSE printed and committed in executed notebook

Blocked by / depends on

Why this is split

The math correctness and the data-pipeline plumbing are independent failure modes. Synthetic validation already pins down the arithmetic. Real-data work is mostly data-engineering (sourcing, schema mapping, dividend handling, stale-quote filtering) and deserves its own diff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions