diff --git a/docs/authoring-guide.md b/docs/authoring-guide.md index fff4f75..dda5834 100644 --- a/docs/authoring-guide.md +++ b/docs/authoring-guide.md @@ -350,19 +350,30 @@ $ aura campaign register mra_3_campaign_full_v2.json registered campaign 42edebd2159de708009ba21e1ed4aea2cffabc373bf761c5765f79c190b677bd (…/runs/campaigns/42ed…json) $ aura campaign run 42edebd2159de708009ba21e1ed4aea2cffabc373bf761c5765f79c190b677bd {"family_id":"42edebd2-0-GER40-w0-s0-0","report":{...}} +{"family_id":"42edebd2-0-GER40-w0-s0-0-r1","report":{...}} … {"campaign_run":{"campaign":"42edebd2…","process":"cd9127…","run":0,"seed":42, - "cells":[{"strategy":"597d719b…","instrument":"GER40","window_ms":[...],"stages":[ + "cells":[{"strategy":"597d719b…","instrument":"GER40","window_ms":[...], + "regime":{"vol":{"length":3,"k":1.5}},"stages":[ {"block":"std::sweep",...},{"block":"std::gate","survivor_ordinals":[0,1,2]}, {"block":"std::walk_forward",...},{"block":"std::monte_carlo","bootstrap":{"pooled_oos":{...}}}]}, - {"strategy":"597d719b…","instrument":"FRA40",...}], + {"strategy":"597d719b…","instrument":"GER40","regime":{"vol":{"length":3,"k":3.0}},"regime_ordinal":1,...}, + {"strategy":"597d719b…","instrument":"FRA40",...}, + {"strategy":"597d719b…","instrument":"FRA40","regime_ordinal":1,...}], "generalizations":[{"strategy_ordinal":0,"window_ordinal":0, "generalization":{"selection_metric":"expectancy_r","n_instruments":2, "worst_case":0.0436…,"sign_agreement":2,"per_instrument":[["GER40",0.0436…],["FRA40",0.0484…]]}, - "winners":[...]}], + "winners":[...]}, + {"strategy_ordinal":0,"window_ordinal":0,"regime_ordinal":1,...}], "trace_name":"42edebd2-0"}} ``` +With two stop regimes every (instrument, window) cell runs twice — the four +cells above are the "4 cell(s)" the validate summary counted. The second +regime's family ids and trace dirs carry the `-r1` ordinal suffix (the +default/first regime stays unsuffixed), each cell record names its regime, +and generalization is keyed per regime — regimes are compared, never pooled. + `aura campaign run` is register-then-run sugar for a `.json` file, but the canonical address is always the content id — running a bare file the first time registers it implicitly. `aura campaign runs` lists stored diff --git a/docs/glossary.md b/docs/glossary.md index 15861a4..5271244 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -212,7 +212,7 @@ The per-symbol composite turning a bias into a managed position, **in R**: `stop A node that converts a finer stream to a coarser bar stream, emitting a completed bar only at the boundary so no partial bar ever leaks (enforcing no look-ahead). Clock-sensitive. ### risk regime -**Avoid:** stop regime, risk section +**Avoid:** risk section One entry of a campaign document's structural risk axis (`risk`): a serializable protective-stop regime (sole variant `vol{length,k}`) the matrix runs every cell under, so cells differ by execution discipline, never by