@@ -39,7 +39,17 @@ def _run_drift(args: argparse.Namespace) -> int:
3939 "quant_platform_kit.strategy_lifecycle.drift_detector" ,
4040 "run_drift_detection" ,
4141 )
42- results = run_drift_detection (domain = args .domain , strategy_profile = args .strategy )
42+ baseline_store = None
43+ if getattr (args , "baseline_local_root" , None ):
44+ from pathlib import Path
45+ from quant_platform_kit .strategy_lifecycle .performance_store import PerformanceStore
46+
47+ baseline_store = PerformanceStore (local_root = Path (args .baseline_local_root ))
48+ results = run_drift_detection (
49+ domain = args .domain ,
50+ strategy_profile = args .strategy ,
51+ baseline_store = baseline_store ,
52+ )
4353 critical_count = sum (1 for item in results if getattr (getattr (item , "status" , None ), "value" , None ) == "critical" )
4454 review_count = sum (1 for item in results if getattr (getattr (item , "status" , None ), "value" , None ) == "review" )
4555 _print (f"[drift] { len (results )} strategies checked, { critical_count } critical, { review_count } review" )
@@ -233,6 +243,7 @@ def build_parser() -> argparse.ArgumentParser:
233243 drift .add_argument ("--strategy" , default = None )
234244 drift .add_argument ("--no-alerts" , action = "store_true" )
235245 drift .add_argument ("--dry-run-alerts" , action = "store_true" )
246+ drift .add_argument ("--baseline-local-root" , default = None )
236247 drift .set_defaults (func = _run_drift )
237248
238249 optimize = subparsers .add_parser ("optimize" , help = "Run parameter optimization for one strategy." )
0 commit comments