Files
tac-exp-dev/queue
zhaoli 7124ef5d8e queue: pre-register Series 2 (Q12-Q20) targeting unproven book hypotheses
Series 1 (Q01-Q11, exp 33-43) executed and folded into book/CLAIMS.md.
Series 2 covers the remaining HYPOTHESIS rows and open questions:
  Q12 22d label + weekly recompute (untested combo)
  Q13 weekly rebalance reproduction on a 2nd OOS window
  Q14 out-of-universe validation (single-stock panel, needs lake backfill)
  Q15 5-seed vs single-seed clean A/B
  Q16 hmm family as features
  Q17 realized-moments family as features
  Q18 OptimalStopControl clean re-test
  Q19/Q20 martingale-VR + effective-names scripted studies

Each workflow pins one-variable change vs exp-26 reference and acceptance.
2026-08-20 03:51:58 +00:00
..

TradeAC Experiment Queue — Series 2 (Q12+)

Purpose. The next pre-registered batch of experiments, continuing Series 1 (Q01–Q11, exp 33–43, all executed and folded into book/CLAIMS.md / book/EVIDENCE.md). Each entry targets a still-unproven HYPOTHESIS from the book or an open question flagged in CLAIMS.md/book/README.md, and follows the Series-1 discipline: one variable changed vs the exp-26 reference, acceptance fixed BEFORE the run, sequential execution, trace-first, verify-then-close.

Reference / control (MUST reproduce first). exp 26 (21afc6af…, mlflow exp 25) is the campaign baseline; exp 39 (Q07, weekly rebalance) is the best construction. Reference config is byte-reproduced in workflows/exp26/ on the exp/26-… branch and in this dir's workflows/*.yaml.

Config element exp-26 reference value
Universe 50-ETF panel (UNIVERSE below)
Features compact stochastic 25-field set (no ou/hmm/moments/garch)
Label Ref($close,-6)/Ref($close,-1)-1 (5d)
Model RankICEnsembleLGBModel, seeds 42,7,2026,99,123, lr 0.02, leaves 31, 3000 rounds, ES 200
Segments train 2016-01-04..2025-09-01 / valid 2025-09-03..2026-01-03 / test 2026-01-04..2026-08-10
Strategy TopkDropout, topk 10, n_drop 1, risk_degree 0.95
Costs open 0.0005 / close 0.0015 / min $5, deal $close, SPY benchmark, $1M

Reference metrics to beat (EVIDENCE#015): net_ann +2.13%, net_IR 0.21, gross +7.02%, maxDD −7.69%, RankIC 0.0663, RankICIR 0.2545, L/S Sharpe 4.54. Weekly (Q07, EVIDENCE#028): net +12.51%, IR 1.24, maxDD −4.13%, ~1.1pp cost drag.

The queue (ordered by value × feasibility)

ID Title / hypothesis Change vs reference (ONE var) Acceptance Config Ready?
Q12 22d label + weekly recompute — the untested combo: Q05's label edge (IC 0.097, RankIC 0.117) with Q07's cost relief label → 22d AND strategy → weekly (two coupled, explicitly pre-registered) net_IR > 0.5, net_ann > +5%, cost drag ≤ 2pp workflows/q12_label22d_weekly.yaml ✅
Q13 Weekly rebalance reproduction on a 2nd window — Q07 was a single OOS window; reproduce on test 2025-01-02..2025-12-31 before promoting to a live round segments only (shifted) net_IR > 0.21, net_ann > +2.13% on the new window workflows/q13_weekly_second_window.yaml ✅
Q14 Out-of-universe validation — compact stochastic set generalizes off the 50-ETF panel to a single-stock universe universe → 30 liquid single names RankIC > 0.03, ICIR > 0.15, net IR > 0 on stocks workflows/q14_out_of_universe.yaml ⚠️ needs stock-lake backfill (see design)
Q15 5-seed vs single-model clean A/B — seed-count claim (exp 12 idea, re-validated exp 22–24, never a clean A/B) seeds → 1 (2026) single-model RankIC/IR < 5-seed ref; net_IR ≥ 0.21 acceptable if ≥ single workflows/q15_single_seed.yaml ✅
Q16 HMM family added as features — settles "dropping model-specific (ou,hmm) improves signal" (exp 25 tested OU; hmm-as-feature untested) features += sp_hmm_p_regime1,sp_hmm_state no improvement: RankIC ≤ 0.0663, net_IR ≤ 0.21 workflows/q16_hmm_features.yaml ✅
Q17 Realized-moments family added — settles "moment/volatility families regress" (exp 11 idea, never clean A/B) features += sp_rskew_5,sp_rskew_22,sp_rkurt_5,sp_rkurt_22,sp_dsv_5,sp_dsv_22 no improvement: RankIC ≤ 0.0663, net_IR ≤ 0.21 workflows/q17_moments_features.yaml ✅
Q18 OptimalStopControl clean re-test — exp 13/14 claim (TopkDropout > stop-control) never re-tested post-reset strategy → OptimalStopControl (exp-13 params) TopkDropout net_IR ≥ stop-control net_IR; document cost drag workflows/q18_optstop.yaml ✅ (module verified in venv)
Q19 Martingale / variance-ratio study close-out — exp 19 never closed; VR<1 at 5–20d on clean lake ad-hoc script (no qrun) VR stats + drift decomposition on 50-ETF panel designs/q19_martingale_vr.md ✅ script
Q20 Effective independent names (≈4) — eigenvalue analysis on clean-lake covariance ad-hoc script eigenvalue spectrum + effective-rank count designs/q20_effective_names.md ✅ script

Deferred (methodology / infra, P3)

  • Purged / walk-forward CV (was queue's old Q12) — methodology, not an alpha lever.
  • PSI-based drift-aware retraining cadence — needs a drift-gate module + a retrain decision rule.
  • No-trade buffer band / notional-vs-qty sizing — siblings of Q12/Q13; queue only if weekly reproduces.
  • Macro/drift overlays (SPY>200d regime gate, momentum tilt) — needs new data pipeline.

Execution protocol (per queued run)

  1. Validate the lake first (validate_lake_dataset + rd_status) — clean-lake lesson: silent NaN-drops and hollow coverage invalidate a run. Q14 additionally requires backfilling the single-stock universe (bars + sp/ta features, full range, explicit start/end).
  2. Trace before running (rd_trace_start with the hypothesis as rational, fresh experiment_name, evolved_from=auto).
  3. Run rd_run_workflow config_path=<abs path to the queue YAML> experiment_name=<fresh name> — wait=false, poll rd_exp_get_run until FINISHED.
  4. Verify against acceptance via rd_exp_result (headline + backtest risk).
  5. Finish the trace (rd_trace_finish with metrics + evaluation), snapshot any changed contrib modules.
  6. Report to the book — PROVE/REFUTE → update book/CLAIMS.md + book/EVIDENCE.md.

Sequential execution only (concurrent runs hang — chat-ideas.md ops lesson). Any custom strategy/module changed here must be copied into the venv site-packages snapshot before rd_run_workflow can import it (see /app/AGENTS.md). As of 2026-08-20 WeeklyRebalanceDropoutStrategy and OptimalStopControl are verified in sync with the venv snapshot; the lake already persists the sp_hmm_* and sp_moments families on the 50-ETF panel.

Provenance

Mined 2026-08-20 from book/CLAIMS.md, book/EVIDENCE.md, book/README.md, book/references/chat-ideas.md, and Series-1 queue/ (Q01–Q11, executed exp 33–43). Reference numbers are post-clean-lake (exp 21+).