5 sweep YAMLs updated to reference the new checkpoint filename:
- config/ml/sweep_smoke.yaml: trunk_best_h6000.bin → trunk_best_h1000.bin
- config/ml/sweep_perhoriz_diag.yaml: same
- config/ml/sweep_threshold_tuning.yaml: same
- config/ml/sweep_deployability.yaml: same
- config/ml/sweep_smoke_perhoriz_cfc.yaml: same + 3 comment updates
(WIN-gate criteria, header doc, best-checkpoint annotation)
scripts/generate_sweep_variants.py:61 updated atomically — without this
the next regeneration of sweep_deployability.yaml would silently
re-introduce trunk_best_h6000.bin.
Argo workflow templates (alpha-perception, alpha-cv, lob-backtest-sweep)
did NOT need text changes — they're already horizon-agnostic:
- They forward CLI flags via {{workflow.parameters.*}} to binaries
- Don't grep alpha_train_summary.json inline
- Don't reference per-horizon field names
- early-stop-metric default is "mean_auc" (horizon-agnostic)
Intentionally left:
- alpha-cv-template.yaml stacker-horizon: "6000" (unrelated TFT lookback)
- alpha-cv-template.yaml horizon: "1200" (DQN execution horizon in bars)
- lob-backtest-sweep-template.yaml ci-training-h100 (GPU pool name)
NOTE: kubectl apply of workflow templates is deferred to Task 10 (push
+ dispatch). Verified all 5 sweep YAMLs parse with python3 yaml.safe_load.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.9 KiB
YAML
37 lines
1.9 KiB
YAML
# P6 batched flow — threshold pre-registration on W0 only.
|
|
# Single-cell, 8 sim variants (one per threshold) sharing one forward pass
|
|
# on the validation window. Selects the production threshold value by
|
|
# maximising in-sample Sharpe; selected value is persisted to
|
|
# config/ml/v2_prod_thresholds.json and committed before the deployability
|
|
# sweep runs.
|
|
|
|
base:
|
|
# P6 batched flow: data_template + cell.window interpolation produces the per-cell data path.
|
|
data_template: /mnt/training-data/futures-baseline-mbp10/ES.FUT/ES.FUT_{window}.dbn.zst
|
|
predecoded_dir: /feature-cache/predecoded
|
|
n_parallel: 1 # legacy default; overridden by variants.len() per cell
|
|
latency_ns: 200000000 # anchor (Scaleway PAR → IBKR realistic RTT)
|
|
target_annual_vol_units: 50.0
|
|
annualisation_factor: 825.0
|
|
max_lots: 5
|
|
max_events: 0 # exhaust loader (full quarter)
|
|
seed: 12648430
|
|
# __SHA__ is replaced by argo-lob-sweep.sh / the operator at submission time
|
|
# with the post-trunk-grows training short-SHA (9 chars).
|
|
checkpoint: /feature-cache/alpha-perception-runs/__SHA__/trunk_best_h1000.bin
|
|
# 8 thresholds spanning p60-p95 (5pt steps). Cost held at the realistic
|
|
# anchor (1 tick = 0.125 price units) so threshold-tuning Sharpe reflects
|
|
# what the deployability sweep will see at that cost.
|
|
sim_variants:
|
|
- { name: t60, threshold: 0.60, cost_per_lot_per_side: 0.125 }
|
|
- { name: t65, threshold: 0.65, cost_per_lot_per_side: 0.125 }
|
|
- { name: t70, threshold: 0.70, cost_per_lot_per_side: 0.125 }
|
|
- { name: t75, threshold: 0.75, cost_per_lot_per_side: 0.125 }
|
|
- { name: t80, threshold: 0.80, cost_per_lot_per_side: 0.125 }
|
|
- { name: t85, threshold: 0.85, cost_per_lot_per_side: 0.125 }
|
|
- { name: t90, threshold: 0.90, cost_per_lot_per_side: 0.125 }
|
|
- { name: t95, threshold: 0.95, cost_per_lot_per_side: 0.125 }
|
|
|
|
cells:
|
|
- { name: W0, window: 2025-Q1 }
|