Document S/R findings and isolate legacy gate features
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user