HMM · XAUUSD, QQQM
Gaussian HMM regime model
- FROZEN
- SOURCE-INSPECTED
- M5 COORDINATE
One frozen Gaussian hidden Markov model per instrument (XAUUSD, QQQM). It labels every 5-minute bar with a latent regime and routes the regime-specific classifier.
01Intended use
Describe which latent regime a historical bar most resembles, and choose the regime-specific classifier. Research and education only.
02Not for
Trading decisions, live signals or any claim that a regime will persist. Regime names are interpretations derived from training characteristics, not externally observed market facts.
03Inputs
The original HMM schema has 31 ordered inputs, built on D1/H4/H1/M15/M5 and aligned to the M5 bar.
Source: experiments/cp2_report_draft2_v1/manuscript_v1/CH03/CH03_DRAFT2.md §3.2.3 · source-inspected
04Settings
Gaussian HMM with K4 states, diag covariance, 200 iterations and seed 42 (Table 3.3). HMM imputation uses training medians, followed by a training-fitted StandardScaler.
Source: experiments/cp2_report_draft2_v1/manuscript_v1/CH03/CH03_DRAFT2.md §3.2.4 Table 3.3 · source-inspected
05Data periods
Labelled populations in native tagged model coordinates (Table 3.4). XAUUSD history is the imported/resampled original record; QQQM history is the native MT5 original record.
| Instrument | Development | Fixed holdout | Historical fresh |
|---|---|---|---|
| XAUUSD | 380,752 rows · 2020-01-03 03:50 → 2025-07-09 20:25 | 67,192 rows · 2025-07-09 20:30 → 2026-07-03 19:30 | 2,017 rows · 2026-07-07 18:30 → 2026-07-24 22:25 |
| QQQM | 75,574 rows · 2021-03-19 20:50 → 2025-10-07 18:25 | 13,337 rows · 2025-10-07 18:30 → 2026-07-02 22:30 | 988 rows · 2026-07-06 16:30 → 2026-07-24 22:30 |
Source: experiments/cp2_report_draft2_v1/manuscript_v1/CH03/CH03_DRAFT2.md §3.2.1, §3.2.6 Table 3.4 · source-inspected
06Validation
MR-01: causal versus whole-sequence regime labels
REPLICATION GATE PASS IN EVERY POPULATION- sensitivity analysis of a stated limitation; exploratory; not a new model, not confirmatory
- primary variant: causal_online_viterbi_cold
The original regime labels were decoded over whole sequences, which can use bars after the row being labelled. MR-01 re-decoded them causally (online, no later bars) and compared the two. For each instrument and population the table gives the replication-gate status and the share of rows on which the causal labels equal the whole-sequence labels, as written in the metrics file. Populations are not pooled and instruments are not averaged.
| Value | Result | Evidence | Source |
|---|---|---|---|
| Label recorded with the result | sensitivity analysis of a stated limitation; exploratory; not a new model, not confirmatory | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /label |
| Primary causal variant | causal_online_viterbi_cold | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /primary_variant |
| Run date | 2026-11-02 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /run_date |
| QQQM development fold 1: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_1/status |
| QQQM development fold 1: label agreement, causal vs whole-sequence | 0.9958978430594151 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_1/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| QQQM development fold 2: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_2/status |
| QQQM development fold 2: label agreement, causal vs whole-sequence | 0.9943099113404791 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_2/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| QQQM development fold 3: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_3/status |
| QQQM development fold 3: label agreement, causal vs whole-sequence | 0.9915310308323408 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_3/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| QQQM development fold 4: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_4/status |
| QQQM development fold 4: label agreement, causal vs whole-sequence | 0.9985443959243085 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1development_fold_4/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| QQQM fixed holdout: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1fixed_holdout/status |
| QQQM fixed holdout: label agreement, causal vs whole-sequence | 0.9939266701657045 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1fixed_holdout/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| QQQM historical fresh: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1historical_fresh/status |
| QQQM historical fresh: label agreement, causal vs whole-sequence | 0.9919028340080972 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/QQQM~1historical_fresh/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD development fold 1: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_1/status |
| XAUUSD development fold 1: label agreement, causal vs whole-sequence | 0.9983453709783322 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_1/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD development fold 2: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_2/status |
| XAUUSD development fold 2: label agreement, causal vs whole-sequence | 0.9965331582403152 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_2/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD development fold 3: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_3/status |
| XAUUSD development fold 3: label agreement, causal vs whole-sequence | 0.9977675640183847 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_3/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD development fold 4: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_4/status |
| XAUUSD development fold 4: label agreement, causal vs whole-sequence | 0.9962967826657912 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1development_fold_4/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD fixed holdout: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1fixed_holdout/status |
| XAUUSD fixed holdout: label agreement, causal vs whole-sequence | 0.9903559947612811 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1fixed_holdout/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
| XAUUSD historical fresh: replication gate | PASS | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1historical_fresh/status |
| XAUUSD historical fresh: label agreement, causal vs whole-sequence | 0.9861179970252851 | reported (owner-run; metrics file as posted; not recomputed) | experiments/cp2_mr01_causal_v1/results/mr01_metrics.json @ fa88153ed383 · /populations/XAUUSD~1historical_fresh/variants/causal_online_viterbi_cold/label_agreement_with_whole_sequence |
Per-population results are on the Research page.
07Known failure modes
Original whole-window decoding lets later evaluation emissions influence earlier state assignments (MR-01). The result is retrospective conditional classification evidence, not established row-by-row causal adaptive superiority.
State names are interpretations derived from training characteristics; the economic names are not externally observed truth.
Source: experiments/cp2_report_draft2_v1/manuscript_v1/CH03/CH03_DRAFT2.md §3.2.5 · source-inspected
08Version
Frozen original CP2 bundle per instrument. The model files are not published on this site.
MR-01 frozen protocol experiments/cp2_mr01_causal_v1/PROTOCOL_FROZEN_v1.md, sha256 e06465f6c87ed7e40b66b381b9b767053c738c72d02a631bea8185b0d469fbca (computed from the committed file at build time) · source-inspected
Frozen-protocol hash: UNAVAILABLE No committed file records a frozen-protocol hash for the original CP2 model bundle. The bundle hash is checked in the private terminal's model registry; model files are not published.