Skip to content

Phase 2 — Edge Audit

Scope: Economic edge vs costs, regime stability, multiple-testing discipline.
Runs performed this audit: Read backtest_results/mvg_v1/ only; did not re-run full make backtest (time-box).
Honest limit: Without fresh batch backtests, most Sharpe/PBO numbers are from April 2026 quarantine comments and gap ledger — not revalidated today.


Validation infrastructure (code-verified)

Capability Location Status
Walk-forward qgtm_backtest, constants WALK_FORWARD_* Implemented
PBO Backtest validation path Implemented; not run for 51/52 PM
Deflated Sharpe DSR_ACCEPT_CONFIDENCE=0.95 Implemented
Cost model DEFAULT_COMMISSION_BPS=5, SLIPPAGE_BPS=5 Default 10 bps round-trip — may understate GC/SI futures
Regime labels MarketRegimeDetector, aggregator Used for sizing, not per-strategy kill

Quarantine cohort (documented OOS, 2015–2025 backtest era)

strategy_id Sharpe (claimed) PBO (claimed) Economic story Verdict
gold_silver_ratio -0.46 0.88 Classic ratio MR on GLD/SLV Kill unless new spec + OOS
gold_platinum -1.57 1.00 Pt/Au ratio Kill
miners_vs_metal -0.16 0.63 GDX vs GLD beta trade Freeze
seasonality_pm -1.74 1.00 Calendar Kill (duplicate seasonal)
overnight_gold -0.24 0.88 Session drift Revise (long-only, costs)
gold_etf_flow n/a broken Flow without SO data Kill
mvg_v1 -1.34 0.625 (artifact) Intraday momentum velocity Kill (artifact confirms)

Active PM sleeves — qualitative edge audit

Grouped by edge type and correlation risk (not duplicate backtest tables).

Macro / rates (11)

ID Story Cost survival Regime Multi-test risk
real_rate_gold, gold_real_rate_residual, breakeven_inflation_gold Real yields → gold Yes on GLD Works in hiking/easing shifts High — 3 correlated
dxy_gold USD strength Yes Risk-on/off Medium
central_bank_gold Official demand Slow; low turnover Structural Low frequency
vix_haven, gold_vix_haven Stress bid VIXY costs Overlap ~0.7+ Consolidate
gold_bitcoin_regime Cross-asset IBIT spread filter Regime shift 2024+ New data limited history

Momentum cluster (8 active)

ID Story Risk
tsmom, gold_tsmom, carver_trend, gold_multi_ma_trend Trend 4× correlated gold beta in trends
xsmom Cross-section Crowding
carver_carry Carry Blocked without futures curve
gold_day_of_week Calendar Weak edge; low capacity concern

Mean reversion (6 active)

ID Story Risk
kalman_pairs, pairs_mr Stat arb Execution on GLD/SLV
gold_royalty_divergence, gold_miner_aisc_margin, gold_phys_premium Relative value AISC staleness
hedging_pressure vs cot_precious COT Likely net-cancel

Vol / options proxy (8 active)

ID Story Risk
vol_risk_premium_pm, skew_trades, gold_options_skew IV rich/cheap ETF proxy ≠ options P&L
vol_term_structure_pm, gold_vol_term_structure Term structure Proxy direction
gamma_scalp_pm, tail_hedge_pm Gamma / tail Carry drag on tail

Flow / microstructure (9 active)

ID Story Risk
cot_precious, sge_withdrawals, gold_comex_squeeze, silver_comex_squeeze Positioning / physical Lag, sparse triggers
gold_lbma_fix_anomaly, gold_mint_sales, gold_sge_premium Anomalies Data quality
etf_flow_pm ETF flow Needs real SO — verify fix separate from gold_etf_flow

Carry / curve (3 active)

ID Story Risk
gc_term_structure, cross_carry, backwardation_stress Futures curve Often data-blocked (Apr 2026)

Structural (3 active)

| levered_etf_decay, event_drift_pm, gold_seasonal_demand | Decay / events / festivals | event_drift needs calendar |


Intraday

ID Artifact Verdict
gold_silver_ratio_intraday None checked in Paper only; compliance now wired
vwap_reversion_intraday None Needs intraday TCA study
gold_gamma_scalp None Duplicate class with PM
mvg_v1 Negative Sharpe Do not enable

Cost stress (theoretical)

At 10 bps default, GLD/SLV sleeves likely survive if Sharpe > 0.3 gross.
At 25 bps (spread filter constant MAX_TRADEABLE_SPREAD_BPS), many rebalance rejects — good gate, reduces turnover.
Futures (GC/SI/MGC/SIL): Not primary execution path in code reviewed — ETF proxy dominates. Capacity for \(5M–\)25M in GLD/SLV is fine; $100M+ needs futures + TCA proof.


Walk-forward / DSR (2026-05-17)

Run Result
Full scripts/backtest_all.py 2015–2025 Skipped (time-box)
Checked-in artifacts mvg_v1 only
GAP-002 Open in verification/gap_ledger.md

Required next step: Trigger .github/workflows/run-backtest.yml on qgtm-do, commit backtest_results/<id>/ for all non-quarantined PM strategies, gate promotion on PBO < 0.5 and DSR pass.


Per-strategy tearsheets

Only mvg_v1 has machine-readable tearsheet in-repo. Others: N/A until backtest batch completes.

See: backtest_results/mvg_v1/result.json, validation.json (if present).