Skip to content

Summary

The V1 snapshot script (tools/regime_snapshot.py) mechanizes operating-rhythm step 1: it fetches VIX and VIX3M as same-date prior closes (one FRED request, VIXCLS + VXVCLS), computes the fitted HAR-RV 30-day forecast from Tiingo EOD data (replacing the day-1 placeholder garch_forecast), applies the regime bands with hysteresis, and appends a v1-schema record to the regime journal.

Execution

cd options-system-wiki/tools
python3 regime_snapshot.py            # today; appends to 96-journal/regime.jsonl
python3 regime_snapshot.py --no-append   # dry run

Exit 0 = label computed; exit 2 = fail-closed (data_missing recorded — also when an input is stale: the FRED close or the HAR window_end more than max_input_age_business_days (2) business days before --asof — the risk never-rule then forbids new risk).

Computation Notes

  • Forecast: HAR-RV (Corsi 2009), rolling 756-obs fit on Tiingo SPY closes, iterated 22 trading days ahead. Model version (input hash) is recorded per snapshot — forecast provenance is auditable.
  • IV30 is the VIX proxy (provisional). Canonical IV30 comes from ThetaData at V1b; until then vrp_sign/vrp_size carry the proxy caveat.
  • First live run 2026-09-11: VIX 17.84, ratio 0.959 (flat), forecast 14.55%, VRP_size +3.29 — at the proposed amendment threshold.

References

  • Corsi (2009), A Simple Approximate Long-Memory Model of Realized Volatility, Quantitative Finance 9(2) — the HAR specification
  • Tiingo API: https://api.tiingo.com/ ; FRED VIXCLS: https://fred.stlouisfed.org/series/VIXCLS ; FRED VXVCLS (VIX3M): https://fred.stlouisfed.org/series/VXVCLS