SPB Git

spb/wp46_uqo

Public
3.9 KB

# CLAUDE.md — UQO Research WP46: The Great GARCH Benchmark

Project ID: wp46_uqo · Folder: Recherche-UQO/finance/wp46_garch_benchmark · Repo: gitsrv:srv/git/wp46_uqo.git Working title: Four Decades of Conditional Volatility Modeling: A Comprehensive Empirical Benchmark Across Assets, Frequencies, and Market Regimes · PI: Simon-Pierre Boucher (UQO) · Language: English. The owner's original brief is kept verbatim in docs/BRIEF.md and is the authoritative text; this file condenses it and records the decisions taken while building (see docs/methodology_decisions.md, progress.md).

# Core question

Across asset classes, horizons (1, 5, 22 days), 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?

# Hard rules (non-negotiable)

  1. Never fabricate data, estimates, references, DOIs, p-values, run outcomes or novelty. Planned ≠ completed: progress.md and docs/PHASE_N_REPORT.md separate the two; every number in the paper is generated by code from results/.
  2. Pre-registration: docs/preregistered_protocol.md is frozen (git tag prereg-frozen) BEFORE any out-of-sample test loss is inspected. The test period is never used for selecting orders, optimizer settings, regime definitions or losses.
  3. Data: FinData OS (https://findata.spboucher.ai/api/v1, FirstRate Data private licence) is the only primary source. No raw bars in git, logs, figures, manuscript or release; aggregate forecasts/losses only. Keys only from ~/Desktop/Cluster/secrets/findata/api-key-claude-code.txt or $FINDATA_API_KEY; never logged.
  4. Units are explicit everywhere: daily log returns in percent; variances in percent²; forecasts are conditional variances of the h-day cumulative return matched to a same-horizon positive proxy.
  5. Failed fits are recorded as failures (never silently replaced by a baseline); unsupported model × distribution pairs are recorded as unsupported, not as bad performance.
  6. Every accepted implementation has: unit tests (recursion, likelihood, admissibility, multi-step), a likelihood cross-check against arch 8.0.0 and/or rugarch 1.5-6 on a shared fixture, seeded simulation recovery, and a model card.
  7. No external publication, push to a new remote, SSRN deposit or paid compute without explicit authorization. Pushing to the private gitsrv mirror is routine.
  8. Remote-first: computation runs on the MacLustr nodes (~/wp46_uqo clones), the laptop is the LaTeX/mirror host.

# Where things are

Item Location
Brief / decisions / progress docs/BRIEF.md, docs/methodology_decisions.md, progress.md
Configs (frozen by the protocol) configs/{study,instruments,model_registry,forecast_protocol}.yaml
Code src/wp46/{findata_client,calendars,preprocessing,realized_measures,models,estimation,forecasts,scoring,inference,diagnostics,reporting}
Scripts scripts/{audit_findata,run_pilot,run_benchmark,build_paper,…}.py
Tests tests/{unit,integration,simulation,replication} (pytest; live tests need WP46_LIVE=1; R tests need rugarch)
Docs docs/{findata_audit,literature_matrix,preregistered_protocol,feasibility_report,methodology_decisions,data_dictionary,replication_guide}.md
Model cards model_cards/<slug>.md
Results results/{manifests,metrics,figures,tables,logs} (forecast parquet files under results/forecasts/ are gitignored)
Paper paper/main.tex, sections/, appendices/, figures/, tables/, references.bib (Crossref-verified)

# Compute

Data node M3U96a (hosts FinData; FINDATA_BASE_URL=http://127.0.0.1:8600/api/v1 there, http://192.168.2.80:8600/api/v1 from the LAN). Benchmark shards on M3U96a/M3U96b/M2U64/M5M36/M4M64a/M4M64c (scripts/node_run.sh). Cache ~/wp46-cache (outside git). Laptop: Python 3.14 + arch 8.0.0, R 4.6.1 + rugarch 1.5-6 for cross-checks.

Files · main
Menu

Theme