← Results index

Run walk-forward CAGR-at-vol gate for qm-y8j-5 per qm-ghn0 pattern with datastore provenance

2026-08-19T03:16:00Z Strategy implementation completed Expanding annual January walk-forward for meta-target-cagr-sp500 and 6040 via run_max_cagr_at_vol_walk_forward on 2006-03-31..2026-07-31 panel (198m OOS 17 signals) showed both variants underperform their vol-matched benchmarks net of 10/20/0bps (SPX delta -0.0437 vol-band 0.746 fail, 6040 delta -0.0359 vol-band 1.028, regime 0/5 and 1/5 fail, extra lag and cost survival fail) leading to reject disposition with no catalog promotion; inputs proven via public-input-provenance hashes matching data/market.sqlite.

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

  1. 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) with expanding_pre_signal_history strictly before each January month-end signal and next_close execution (Jan weights first earn Feb). Spec documents vs inferred separation (caps/floors/lag/sample cov documented, no thresholds invented).
  2. Einged trusted data via backtest.datastore read-only on data/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 TR resample(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/v1 hashes sha256:4e83ebfcf... (sleeve panel), sha256:f2b2b20c... (^GSPC), sha256:6e43c232... (60/40), sha256:8032b6ea... (store) / sha256:508ccb54... market file matching coverage_ohlcv slack 5d and status() v5 checks offline.
  3. Defined frozen trial ledger research/findings/trial-ledger-qm-y8j.5.json (also trial-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 flagged insufficient_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.
  4. Implemented research/qm_aaaz_runner.py invoking run_max_cagr_at_vol_walk_forward with multi-start SLSQP _solve_max_cagr_at_vol_once / _multistart_max_cagr_at_vol maximizing mean(log(1+R_p)) subject to realized 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; emitted research/experiments/qm-aaaz.json and research/findings/evidence-manifest-qm-aaaz.json / research/strategy_evidence/meta-target-cagr-vol-qm-aaaz.json G0-G13 fully populated (decision reject).
  5. Published via experiments producer (not strategy_promote): python3 -m research.reports scaffold regenerated docs/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 --offline for shared manifest, and python3 -m research.reports.results for changelog; no catalog entry created for reject disposition (proven via load_admitted_registry AdmissionError).

Files changed

Validation

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

Source artifact: research/results/qm-aaaz.md