Files
foxhunt/config/ml
jgrusewski f9b57f4c18 feat(fxt-backtest): sweep subcommand + example grid YAML (C15)
New `fxt-backtest sweep --grid <yaml> --out <dir>` subcommand: iterates
over a grid of Run configs, writes each cell's artifacts to
<out>/<cell_name>/, then automatically invokes the existing aggregate
path to produce aggregate.parquet + pareto_frontier.json at the root.

All cells run sequentially on the same GPU (single-machine). For
cluster fan-out the underlying mechanism is the same — Argo can wrap
this binary in a workflow that runs each cell as a separate pod
(left as infra-side work for a follow-up commit; the binary's
contract is the same).

Sweep grid YAML schema:
  base:                   # defaults applied to every cell unless overridden
    data: ...
    n_parallel: ...
    decision_stride: ...
    latency_ns: ...
    target_annual_vol_units: ...
    annualisation_factor: ...
    max_lots: ...
    max_events: ...
    seed: ...
    checkpoint: ...       # optional — load real trained weights
  cells:
    - name: cell_a
      decision_stride: 1  # override base
    - name: cell_b
      latency_ns: 250000000
    ...

Each SweepCell may override any subset of fields; unset fields fall
back to base defaults. --max-cells gates the run for smoke-testing
large grids.

Adds an example grid at config/ml/sweep_decision_stride_example.yaml
that re-runs the decision_stride ∈ {1, 2, 4, 8} sweep deferred from
the original plan (task #202).

Closes #201 (sweep tool). #202 (first decision_stride sweep) is now
executable end-to-end via the example grid.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:34:08 +02:00
..