# ORB Phase 3b — Focused sweep: max_gap × order_timeout # # Phase 3 showed ranking by IS Sharpe buried best OOS combos. # Phase 3 top-9 (IS +6.6%, OOS +23.1%) are WORSE OOS than Phase 2 # winner (OOS +27.1%). Need OOS-sorted evaluation. # # Strategy: fix all Phase 3 winners except max_gap & timeout, # run top-N=all so every combo gets OOS validated, then sort by OOS. # # 4 × 5 = 20 combinations (all get OOS eval via --top-n 20) # # Run: # python -m apps.intraday_bt.evaluate \ # --config configs/intraday/orb_p2_winner.yaml \ # --sweep configs/intraday/sweep_orb_p3b_maxgap_timeout.yaml \ # --start 2022-01-01 --split-date 2025-01-01 \ # --top-n 20 \ # --output runs/intraday_orb/phase3b_eval.json base_config: configs/intraday/orb_p2_winner.yaml sweep: # Fixed at Phase 3 winner values (these don't affect results meaningfully) max_candidates: [20] min_rvol: [1.0] max_stops_per_day: [3] daily_max_loss_pct: [0.0125] compound_returns: [false] # Key dimensions: gap filter vs none, and entry timeout max_gap_pct: [0.03, 0.05, 0.10, null] order_timeout_minutes: [20, 30, 45, 60, 90]