Files
Aura/crates
Brummel 54a5d68f51 feat(stage1-r-sweep): grid signal+stop timescales via CSV flags
Enabling change for the strategy-research run: `aura sweep --strategy
stage1-r` gains four optional comma-separated grid flags `--fast`,
`--slow`, `--stop-length`, `--stop-k` that become the sweep's grid axes
over the four stage1_r_graph knobs (sma fast/slow length, vol-stop
length, vol-stop k). The family is their cartesian product. This lets a
slow time-series-momentum edge be screened across timeframes — Phase 0
showed fast (2/4-bar) signals are chop-dominated noise on M1, so any
momentum edge lives at slower timescales, and the stop timescale must be
tunable alongside the signal.

Mechanism:
- aura-composites: factor vol_stop and risk_executor into a single
  shared topology body each (vol_stop_inner / risk_executor_inner), with
  the vol-stop knobs either BOUND (the original constant-bind form,
  byte-identical) or left OPEN and named `stop_length` / `stop_k` so
  their slots surface in param_space as sweepable axes. New
  risk_executor_vol_open(risk_budget) is the gridding sibling of
  risk_executor(StopRule::Vol{..}, ..). One body, two arms → topology
  cannot drift; a member at any (length, k) matches the bound form
  byte-for-byte.
- aura-cli: parse_csv_list (generic FromStr, rejects non-numeric/empty),
  pure unit-testable parse_sweep_args, all four knobs gridded via
  .axis(); absent flags fall back to today's exact defaults (fast {2,3},
  slow {6,12}, stop_length {3}, stop_k {2.0}).

Default behaviour byte-identical: all existing goldens/sweep tests stay
green (541 passed, 0 failed; clippy -D warnings clean). Frictionless
Stage-1 R unchanged.

refs #137
2026-06-25 00:43:56 +02:00
..