Strategy Coverage Investigation — 2026-04-16
Trigger: Today's live rebalance (16:09 UTC) fired signals from only 5 of 26 active strategies. Memory said 4; levered_etf_decay joined the set post-restart. The remaining 21 returned empty.
Headline
This is a data-wiring problem, not a strategy-quality problem. 14 of the 21 empty strategies cannot produce signals because the data they consume is not yet wired into the features pipeline.
Classification
| strategy | category | bucket | specific reason | fix cost |
|---|---|---|---|---|
| real_rate_gold | macro_fundamental | Regime gate | DFII10=1.89 mid tercile; 21d rate-change +0.06 not falling; z=0.24 — correctly abstains | S (none) |
| dxy_gold | macro_fundamental | Threshold gate | Residual z=0.04, beta=-3.46, corr=-0.45 — canonical relationship holds, no dislocation; entry_z=2.0 not hit | S (none) |
| breakeven_inflation_gold | macro_fundamental | Regime gate | z_be=-0.03, z_bs=-0.35 — neither rising; regime filter requires both > 0 | S (none) |
| central_bank_gold | macro_fundamental | Missing data | cb_gold_purchases / gold_reserves_share absent; no WGC/COFER provider |
M (wire WGC/World-Bank API) |
| vix_haven | macro_fundamental | Regime gate | VIX=18.2, z=-0.16, SPY drawdown unknown (SPY not in universe); neither risk-off (z>1.5) nor complacency (z<-1.5) | S (none) + XS (add SPY) |
| carver_carry | momentum_trend | Missing data | No carry_forecast, front_price, deferred_price — requires commodity futures curve |
L (futures data pipeline) |
| kalman_pairs | mean_reversion_pairs | Threshold gate | GLD/SLV warmup OK; Kalman z-score inside ±2.0 entry band | S (none) |
| pairs_mr | mean_reversion_pairs | Threshold gate | Log-spread z within ±2.0 band for all configured pairs | S (none) |
| etf_flow_pm | flow_positioning | Missing data | gld_shares_outstanding, slv_shares_outstanding absent |
S (SSGA/iShares scrape) |
| cot_precious | flow_positioning | Threshold gate | gold_mm z=-1.08, silver_mm z=+0.79 — neither hits ±2.0 | S (none) |
| sge_withdrawals | flow_positioning | Missing data | Chinese data provider not wired | L (SGE/WGC scrape) |
| hedging_pressure | flow_positioning | Missing data / column mismatch | Needs commercial_net + open_interest; features have gold_comm_net / silver_comm_net but no alias or OI |
S (alias + OI from existing COT) |
| vol_risk_premium_pm | volatility_derivatives | Missing data | gld_iv, slv_iv, vix_front, vix_back absent — no options IV feed |
L (options IV pipeline) |
| vol_term_structure_pm | volatility_derivatives | Missing data | Same options IV gap | L (same) |
| gamma_scalp_pm | volatility_derivatives | Missing data | Options IV + event calendar | L (options + events) |
| skew_trades | volatility_derivatives | Missing data | 25d put/call IV skew — no options chain feed | L (options chain) |
| tail_hedge_pm | volatility_derivatives | Not wired up (universe) | VIXY/UVXY/SPY outside universe | XS (universe expand) |
| event_drift_pm | structural_seasonal | Missing data | event_type, actual, consensus absent — no econ calendar |
M (calendar scrape) |
| gc_term_structure | term_structure_carry | Missing data | gc_front, gc_back absent |
L (GC futures curve) |
| cross_carry | term_structure_carry | Missing data | gc_front/back, si_front/back absent |
L (same) |
| backwardation_stress | term_structure_carry | Missing data | Same futures curve gap | L (same) |
Bucket rollup
- Missing data: 13 strategies (need new data pipelines)
- Regime gate (correctly abstaining): 3 strategies
- Threshold gate (signal below entry): 4 strategies
- Not wired up (universe): 1 strategy
Only 4 strategies are "working but quiet today." The remaining 17 need wiring.
Top 5 highest-leverage fixes
- Alias
commercial_net+ pull OI from existing COT feed — Cost: S. One-line column-alias fix in_enrich_features. Unlockshedging_pressure. +1 strategy. - Add VIXY, UVXY, SPY to PM universe — Cost: XS. All Alpaca-tradeable. Unlocks
tail_hedge_pm+ fixesvix_havendrawdown path. +1 strategy. - Wire free COMEX GC/SI continuous-contract feed — Cost: M.
yfinanceGC=F+SI=For Stooq continuous. Unlocksgc_term_structure,cross_carry,backwardation_stress. +3 strategies. - Options IV surface — Cost: M-L. Yahoo/CBOE public CSV or
yfinanceoptions chain. Unlocksvol_risk_premium_pm,vol_term_structure_pm,gamma_scalp_pm,skew_trades. +4 strategies. Highest absolute leverage. - GLD/SLV daily shares-outstanding scraper — Cost: S. SSGA + iShares public data. Unlocks
etf_flow_pm. +1 strategy.
Coverage math
| State | Active / 26 |
|---|---|
| Current (2026-04-16) | 5 |
| After fixes 1 + 2 + 5 | 8 |
| After fixes 1 + 2 + 3 + 5 | 11 |
| After fixes 1 + 2 + 3 + 4 + 5 | 15 |
Relevant files
qgtm_live/daemon.py— registry at L142, features merge L960-1058, aliases L1037-1048qgtm_strategies/*.py— per-strategy entry gatesqgtm_core/constants.py— universe +QUARANTINED_STRATEGIESat L98qgtm_data/cot.py— COT pipeline (needs OI propagation)
Action taken
Spawned feat/strategy-coverage-quick-wins agent (2026-04-16 16:~UTC) to ship fixes 1 + 2 + 5 as one PR. Fixes 3 and 4 held for separate scoping due to new data pipelines required.