SPB Git

spb/wp46_uqo

Public

This looks like a research repository (LaTeX, bibliography, figures). Preview Research Mode· enable it with research: true on the API.

History
NameLast commitUpdated
configs WP46: A-01 seeded simulation forecasts, A-02 registry keys, A-03 tests and...
data WP46: synthetic fixture, data READMEs
docs WP46: README, replication guide, Makefile
model_cards WP46: README, replication guide, Makefile
paper WP46: verification appendix, test-count macro, run-manifest dedupe
results WP46: cross-check table generator, GAS nesting test, R test fixes
scripts WP46: collect-and-evaluate chain
src WP46: cross-check table generator, GAS nesting test, R test fixes
tests WP46: cross-check table generator, GAS nesting test, R test fixes
.gitignore WP46: skeleton, brief, FinData client, audit script, calendars, ingestion
CLAUDE.md WP46: skeleton, brief, FinData client, audit script, calendars, ingestion
Makefile WP46: README, replication guide, Makefile
progress.md WP46: A-04 kappa computed once per fit (skew-t custom models 100x faster)
pyproject.toml WP46: skeleton, brief, FinData client, audit script, calendars, ingestion
README.md WP46: README, replication guide, Makefile
README.md source

# 📊 Four Decades of Conditional Volatility Modeling

UQO Working Paper No. 46 — A Comprehensive Empirical Benchmark Across Assets, Frequencies, and Market Regimes

Paper Python Data Reproducible Institution Author

TL;DR — Across asset classes, horizons (1, 5, 22 days), market regimes and information sets, when — if ever — do more complex conditional volatility models reliably beat GARCH(1,1), and is any gain worth the numerical and computational cost? A pre-registered benchmark (protocol frozen at git tag prereg-frozen before any test-period loss was computed) of 29 scored architectures × innovation laws (ARCH, GARCH, IGARCH, GARCH-M, GJR, TGARCH, EGARCH, NAGARCH, QGARCH, AVGARCH, APARCH, FIGARCH, component, MS-GARCH, GAS-t; HAR, Realized GARCH, HEAVY, GARCH-X; CCC/DCC/aDCC/BEKK) on 42 instruments (ETFs, stocks, futures, FX, crypto; FinData OS 1-minute and daily bars 2000–2026), with QLIKE against a full-day realized proxy, DM/MCS/SPA inference, VaR/ES backtests, regime splits, failure and compute accounting. Headline results are filled in by scripts/build_paper.py after the benchmark; see the Status section.


# 📌 Status

Item Value
Version 1.0 (November 2026) — built autonomously on 2026-11-09 under the owner's brief (docs/BRIEF.md)
Protocol docs/preregistered_protocol.md, frozen 2026-11-09 (commit 3590bd6, tag prereg-frozen)
SSRN / journal not yet submitted
Code & data code, manifests, checksums and aggregate results in this repository; raw bars under the FirstRate Data private licence (not redistributed)

# 🎯 What this paper does

C1 a definition-faithful taxonomy and mathematical reference (configs/model_registry.yaml, model_cards/); C2 a multi-asset out-of-sample benchmark with identical rolling origins, targets and losses within each information tier; C3 a complexity–accuracy–robustness frontier (failures, inadmissible estimates, compute cost, regimes); C4 an open benchmark and replication package (docs/replication_guide.md).

# 🏆 Headline results

See paper/main.pdf (Sections 6–10) and results/tables/pooled_main_test.csv; this table is regenerated by scripts/build_paper.py.

# 🗂 Repository layout

text
wp46_garch_benchmark/
├── CLAUDE.md · README.md · pyproject.toml · progress.md
├── configs/        study · instruments · model_registry · forecast_protocol (.yaml, frozen)
├── docs/           BRIEF · findata_audit · literature_matrix · preregistered_protocol · feasibility_report · methodology_decisions · data_dictionary · replication_guide
├── src/wp46/       findata_client · calendars · preprocessing · realized_measures · models (arch wrappers, custom MLE, baselines, multivariate, distributions)
│                   · estimation (rolling driver) · scoring (losses, proxies, evaluate) · inference (DM, MCS, SPA, joint bootstrap) · diagnostics (VaR/ES) · reporting
├── scripts/        audit_findata · ingest_bars · build_panels · build_rcov · run_pilot · make_jobs · run_benchmark · node_run.sh · dispatch_nodes
│                   · run_tier_c · compute_losses · analyze · analyze_tier_c · build_paper · build_references
├── tests/          unit · integration · simulation (Monte Carlo recovery) · replication (rugarch cross-check)
├── model_cards/    one card per architecture
├── results/        manifests (audit, ingest, panels, jobs, figure audit) · metrics (pilot, losses, analysis, cross-checks) · tables · figures · logs
└── paper/          main.tex · sections/ · appendices/ · tables/ (generated) · figures/ (generated) · references.bib (Crossref-verified) · main.pdf

# 🚀 Quick start

See docs/replication_guide.md. Without a FinData credential: make test (unit, integration) and the synthetic fixture.

# 💾 Data

FinData OS (FirstRate Data): 1-minute and daily bars for 42 instruments, audited on 2026-11-09 (docs/findata_audit.md); session conventions and realized measures in docs/data_dictionary.md; decisions D-01…D-15 in docs/methodology_decisions.md.

# 🔬 Methodology

Rolling window 1,000 days, re-estimation every 5 days with daily filtering; horizons 1/5/22 with same-horizon cumulative proxies; QLIKE primary (MSE/MAE secondary; six proxy variants); DM-HAC, 90 % MCS, SPA, joint block bootstrap across instruments, Holm counts; VaR/ES 1 %/5 % (Kupiec, Christoffersen, DQ, FZ0); regimes defined without look-ahead; failure policy and compute accounting (docs/preregistered_protocol.md).

# 📈 Figures & tables inventory

results/manifests/figure_audit.csv (sources of every figure); paper/tables/*.tex generated by scripts/build_paper.py.

# ⚠️ Limitations

Surviving liquid instruments only; vendor futures roll rule undocumented; crypto realized measures valid from 2022 only; FIEGARCH/FIAPARCH/HYGARCH/ST-GARCH/GARCH-MIDAS/SV/Realized EGARCH inventoried but not scored (no vetted implementation or outside the information set); Tier C at h = 1 only.

# 📖 Citation

bibtex
@techreport{boucher2026garchbenchmark,
  title  = {Four Decades of Conditional Volatility Modeling: A Comprehensive Empirical Benchmark Across Assets, Frequencies, and Market Regimes},
  author = {Boucher, Simon-Pierre},
  year   = {2026},
  institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},
  type   = {UQO Working Paper},
  number = {46}
}

# 👤 Author & contact

Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca — Département des sciences administratives, UQO.

# 📝 Notes

Folder named wp46_garch_benchmark as requested by the brief (standard slug convention otherwise). Pre-registration disclosure: SPY 2024 forecast values (no losses) were inspected during driver smoke tests before the freeze (D-15).

Clone wp46_uqo

Anonymous clone and fetch. Pushing requires the owner's personal access token.

ZIP tar.gz snapshot of main
Files · main
Menu

Theme