Document S/R findings and isolate legacy gate features

This commit is contained in:
2026-07-12 23:38:09 +02:00
parent ce0df6a126
commit 93403b4d3a
7 changed files with 144 additions and 23 deletions
+2
View File
@@ -53,6 +53,8 @@ def _parse_args() -> argparse.Namespace:
"soft_zones", "confirmed_rounds", "gate_v2",
"rewrite_legacy_primary", "soft_zones_legacy_primary",
"confirmed_rounds_legacy_primary", "gate_v2_legacy_primary",
"legacy_geometry_neutral", "legacy_pivots_only",
"legacy_traffic_grid_only",
),
default=None,
help="Research-only S/R detector/gate arm.",
+23 -6
View File
@@ -1,4 +1,4 @@
"""Run the S/R v2 training matrix or one locked validation comparison.
"""Run S/R detector, hidden-feature, or locked validation comparisons.
This is a cross-platform orchestrator around ``run_backtest_snapshot.py``. It
contains no backtest logic; every arm still runs through the production-parity
@@ -23,6 +23,12 @@ TRAINING_ARMS = (
"gate_v2_legacy_primary",
)
LOCKABLE_ARMS = TRAINING_ARMS[1:]
TRAFFIC_ARMS = (
"production_control",
"legacy_geometry_neutral",
"legacy_pivots_only",
"legacy_traffic_grid_only",
)
def _add_common(parser: argparse.ArgumentParser) -> None:
@@ -39,6 +45,11 @@ def _args() -> argparse.Namespace:
commands = parser.add_subparsers(dest="command", required=True)
train = commands.add_parser("train", help="Run all arms before 2024-07-01.")
_add_common(train)
traffic = commands.add_parser(
"traffic",
help="Isolate legacy geometry, pivots, and price-traffic grid on training data.",
)
_add_common(traffic)
validate = commands.add_parser(
"validate",
help="Run production control and one locked arm from 2024-07-01.",
@@ -75,17 +86,21 @@ def _run_arm(
)
def _train(args: argparse.Namespace) -> None:
for arm in TRAINING_ARMS:
def _train(
args: argparse.Namespace,
arms: tuple[str, ...],
filename_prefix: str,
) -> None:
for arm in arms:
_run_arm(
arm,
args.snapshot,
args.workers,
entry_flag="--entry-end",
entry_date="2024-06-30",
output=ROOT / "reports" / f"backtest-sr-v2-train-{arm}.json",
output=ROOT / "reports" / f"{filename_prefix}-{arm}.json",
)
print("Training matrix complete. Lock one arm before running validation.")
print("Training matrix complete. Review results before running validation.")
def _validate(args: argparse.Namespace) -> None:
@@ -118,7 +133,9 @@ def _validate(args: argparse.Namespace) -> None:
def main() -> None:
args = _args()
if args.command == "train":
_train(args)
_train(args, TRAINING_ARMS, "backtest-sr-v2-train")
elif args.command == "traffic":
_train(args, TRAFFIC_ARMS, "backtest-sr-traffic-train")
else:
_validate(args)