Objective
Execute the qm-ghn0-pattern walk-forward gate for experiment qm-y8j-5-max-cagr-at-vol (spec research/findings/specs/meta-target-cagr-vol-qm-y8j.5.json v1.1, meta-target-cagr-vol-qm-y8j-5 disclosure no_blog) as an expanding annual January strategy route per acceptance criteria: expanding walk-forward for both variants meta-target-cagr-sp500 (target vol = expanding realized vol of SPX ^GSPC price monthly) and meta-target-cagr-6040 (target vol = expanding vol of 60/40 0.6SPY + 0.4bond TR) via research/optimizer3_meta.run_max_cagr_at_vol_walk_forward (60m initial floor, 36m per-sleeve via eligible_strategy_ids, capped-simplex 5%/20%/max10, sample covariance ddof1, anti_overfit 0.002, monthly+static only, next_close one-bar lag) with costs 10bps base / 20bps stress / 0bps sensitivity, reporting CAGR-at-vol vs vol-matched benchmarks, Sharpe/Sortino/MaxDD/turnover, vol-band 0.8-1.2x compliance, calibration 1991-1999 vs untouched 2000-2026, regime/neighbor/extra-lag/cost gates, and public-input-provenance/v1 hashes matching data/market.sqlite; no promotion until G11-G12 gates pass.
Approach
- Froze expanding protocol per locked
research/findings/specs/optimizer-3-meta-contract-v1.json(max_strategies 10, min_weight 0.05 proportional redistribute, max_weight 0.20 =2/n, monthly+static only exclude_daily, sample covariance Ledoit-Wolf false, anti_overfit mu 0.002 soft, starts 32 workers 4 seed 0, schedule year_end_select_trade_end_jan_to_end_jan with one-month lag hold) withexpanding_pre_signal_historystrictly before each January month-end signal andnext_closeexecution (Jan weights first earn Feb). Spec documents vs inferred separation (caps/floors/lag/sample cov documented, no thresholds invented). - Einged trusted data via
backtest.datastoreread-only ondata/market.sqlite(close_only v5, 124 tickers 785032 ohlcv, 20 macro 56261, 73126 as_monthly, 87734 sim_monthly, 104MB + 8MB sim_daily sidecar): 10-ticker risk panel SPY/EFA/EEM/AGG/IEF/TLT/VNQ/DBC/GLD/IWM resampled month-end TRresample(ME).last().pct_change()plus synthetic__DGS10_CM_TR__(FRED DGS10 1962..2026 synthetic TR) and^GSPC(1927..2026) and lived IEF for benchmarks;public-input-provenance/v1hashessha256:4e83ebfcf...(sleeve panel),sha256:f2b2b20c...(^GSPC),sha256:6e43c232...(60/40),sha256:8032b6ea...(store) /sha256:508ccb54...market file matchingcoverage_ohlcvslack 5d andstatus()v5 checks offline. - Defined frozen trial ledger
research/findings/trial-ledger-qm-y8j.5.json(alsotrial-ledger-qm-aaaz.json) with common panel 2006-03-31..2026-07-31 245m (DBC limiting 2006-02-06, SPY earliest 1993), feasible OOS 2010-02-28..2026-07-31 198m 17 Jan signals (first 2010-01-31 with 46m expanding), task calibration 1991-1999 (theoretical, 0 eligible signals on ETF panel flaggedinsufficient_history), untouched 2000-2026 preserved feasible 2006..2026, plus rejection gates predeclared: walk-forward OOS net win (CAGR delta >0 net 10bps), vol-band 0.8-1.2x, regime 3/5, neighbor stability via vol-band perturbation +-10%, extra-lag 2-bar, cost survival 0/10/20bps, sparse 36m eligibility. - Implemented
research/qm_aaaz_runner.pyinvokingrun_max_cagr_at_vol_walk_forwardwith multi-start SLSQP_solve_max_cagr_at_vol_once/_multistart_max_cagr_at_volmaximizingmean(log(1+R_p))subject torealized vol == benchmark vol(sample stdev*sqrt(12) expanding strictly before signal), capped-simplex projection,investability_for_panel,canonical_weights, yielding daily walk-forward cross-check plus monthly sleeve matrix; emittedresearch/experiments/qm-aaaz.jsonandresearch/findings/evidence-manifest-qm-aaaz.json/research/strategy_evidence/meta-target-cagr-vol-qm-aaaz.jsonG0-G13 fully populated (decision reject). - Published via experiments producer (not strategy_promote):
python3 -m research.reports scaffoldregenerateddocs/site-data/experiments/qm-aaaz.json/docs/experiments/qm-aaaz.html+docs/site-data/experiments/index.json/docs/experiments.html,research.artifacts build --mode full --offlinefor shared manifest, andpython3 -m research.reports.resultsfor changelog; no catalog entry created for reject disposition (proven viaload_admitted_registryAdmissionError).
Files changed
research/results/qm-aaaz.md— this durable task note (YAML front matter id qm-aaaz, newest changelog entry).research/findings/specs/meta-target-cagr-vol-qm-y8j.5.json— frozen StrategySpec v1.1 (id meta-target-cagr-vol-qm-y8j-5, 10-ticker risk universe, 5%/20%/max10, monthly month_end next_close, 2 variants max_cagr_at_vol, sha256:f630e5..., canonical 888a5308...).research/findings/specs/optimizer-3-meta-contract-v1.json— locked Optimizer 3.0 Meta contract v1 (max10/0.05/0.20/sample/0.002, canonical 89e5f375...).research/qm_aaaz_runner.py— runner invokingrun_max_cagr_at_vol_walk_forward(SLSQP multistart, sample cov ddof1, capped-simplex, Jan signals).research/findings/trial-ledger-qm-y8j.5.jsonandresearch/findings/trial-ledger-qm-aaaz.json— frozen trial ledger (strategy-trial-ledger/v1, 2 variants, contract/spec/engine/universe/datastore hashes, walk_forward_windows anchored 1970 calibration 1991-1999 vs untouched 2000-2026 feasible 2006-2026).research/findings/evidence-manifest-qm-aaaz.json/research/strategy_evidence/meta-target-cagr-vol-qm-aaaz.json— G0-G13 evidence manifest v1.0 (strategy_id meta-target-cagr-vol-qm-aaaz, decision reject, spec_hash 888a, universe_hash 277793..., 8 input_hashes).research/experiments/qm-aaaz.json— experiment manifest research-experiment/v1 id qm-aaaz status rejected (metrics for both variants, provenance input_hashes 8 including market 508ccb54..., supplemental no_catalog_entry true).docs/site-data/experiments/qm-aaaz.jsonanddocs/experiments/qm-aaaz.html— published rejected experiment (OOS deltas, vol-band, regime, cost, provenance tables).docs/site-data/experiments/index.jsonanddocs/experiments.html— regenerated experiments index with qm-aaaz.docs/site-data/results.json,docs/results.html,docs/results/qm-aaaz.html— rebuilt changelog payload and detail page viaresearch.reports.results(qm-aaaz newest).docs/.shared-artifact-manifest.json— regenerated shared-manifest after scaffold (deterministic, no drift).
Validation
python3 -m research.pipeline validate— graph 28 nodes 38 edges passed (graph_hash sha256:6802fab...).python3 -m research.pipeline verify --offline— passed (shared_artifacts deterministic, strategy_reject passed, indicator_promote passed, data_source passed, 28/28 nodes covered).python3 -m research.strategy_spec.validate research/findings/specs/meta-target-cagr-vol-qm-y8j.5.json— spec v1.1 validates (file f630..., canonical 888a...).python3 -m research.strategy_evidence.validate research/findings/evidence-manifest-qm-aaaz.json— G0-G13 validate 0 errors, decision reject anchored.python3 -m research.experiment_registry validate/load_registry + load_manifest qm-aaaz— registry 12 experiments, qm-aaaz manifest validates v1 id rejected.python3 -m research.artifacts check --mode full --offline— shared artifacts deterministic and current, drift 0.python3 research/scripts/check_static_reports.py docs— local bundle OK: 1242 files; 178 canary routes.python3 -m pytest -q tests/test_qm_aaaz_temporal_causality.py tests/test_qm_aaaz_implementation.py tests/test_engine.py tests/test_datastore.py— 70 passed in 103.56s (temporal causality strictly_before, next_close earnings lag, pipeline verify, registry/spec/evidence, static reports, privacy DB unchanged).python3 -m backtest.datastore status/coverage_ohlcv— v5 124 tickers 785032 ohlcv 73k monthly, DBC/SPY/^GSPC/__DGS10_CM_TR__ coverage true with slack 5d/45d offline.git grep qm-aaaz research/results/qm-aaaz.md— entry grep-searchable.python3 -m research.reports.results --json— rebuiltdocs/site-data/results.jsonanddocs/results.html; zero errors, qm-aaaz newest.
Results
Feasible panel 2006-03-31..2026-07-31 245m; feasible OOS 2010-02-28..2026-07-31 198m, 17 January signals. Both variants underperform their vol-matched benchmarks net of 10bps next_close and across 0/20bps: meta-target-cagr-sp500 CAGR 0.08053 vs SPX 0.12420 delta -0.04367 vol 0.1076 target 0.1441 vol-band ratio 0.746 fail (0.8-1.2x), Sharpe 0.775 vs 0.887 delta -0.112, Sortino 1.13 vs 1.30, MaxDD -0.235 vs -0.247, turnover 0.084 annual; meta-target-cagr-6040 CAGR 0.06222 vs 60/40 0.09809 delta -0.03587 vol 0.0915 target 0.0890 ratio 1.028 pass, Sharpe 0.706 vs 1.099 delta -0.392, Sortino 1.09, MaxDD -0.214, turnover 0.14 — overall vol-band fail as one variant infeasible. Regime 5 subperiods: SPX 1/5 wins (only 2025-2026 +0.034), 6040 0/5 all negative (-0.067/-0.023/-0.021/-0.023/-0.019) fail 3/5 majority. Extra-lag Jan->Mar 2-bar preserves failure (SPX -0.04408, 6040 -0.03810). Cost survival fails at 0/10/20bps (gross SPX -0.04356 base -0.04367 stress -0.04378; 6040 -0.03569/-0.03587/-0.03605). Neighbor stability vol-band perturbation +-10%: SPX 0.746 compliance false (0.9x would comply true 1.1x false narrow plateau), 6040 passes but isolated. Calibration 1991-1999 0 eligible January signals insufficient_history (panel starts 2006, first eligible 2010-01-31) not counted as pass. Disposition reject per G13 — no catalog promotion; research preserved via experiments route (docs/site-data/experiments/qm-aaaz.json) without fabricating catalog entry.
Links
- Task:
qm-aaaz - Spec:
research/findings/specs/meta-target-cagr-vol-qm-y8j.5.json(sha256:f630e5ccebb2dd18f53ccd8c56cfb6c73d05403e9642c208140948be3e66ee72 canonical 888a53087c...) - Contract:
research/findings/specs/optimizer-3-meta-contract-v1.json(canonical 89e5f375...) - Ledger:
research/findings/trial-ledger-qm-y8j.5.json(ledger qm-y8j.5 / qm-aaaz) - Evidence:
research/findings/evidence-manifest-qm-aaaz.jsonandresearch/strategy_evidence/meta-target-cagr-vol-qm-aaaz.json(G0-G13 reject) - Experiment:
research/experiments/qm-aaaz.json/docs/site-data/experiments/qm-aaaz.json+docs/experiments/qm-aaaz.html(expanding 60m/36m capped-simplex walk-forward 2006-2026) - Datastore:
data/market.sqlite(close_only v5 104MB sha256:508ccb5419cc09b43a1e42e60693f6f93d4f9f9efb1fa58b0aeb9c170f149dfd) - Follow-up: sibling gap record
qm-ctpa(research/results/qm-ctpa.md), source experimentqm-y8j-5-max-cagr-at-volinsufficient_evidence