|
|
# ORB Strategy Parameter Sweep
|
|
|
# Tests key ORB parameters on shared data (loaded once).
|
|
|
# 4 × 4 × 2 × 2 × 3 × 3 × 2 = 1,152 combinations
|
|
|
# Simulation-only time: ~1,152 × <0.5s ≈ ~10 minutes
|
|
|
|
|
|
base_config: configs/intraday/orb_default.yaml
|
|
|
|
|
|
sweep:
|
|
|
# Simulation bar interval for breakout/stop management (ORB candle always 5-min)
|
|
|
sim_bar_minutes: [5, 15, 30]
|
|
|
|
|
|
# Stop distance: how far below ATR to set initial stop
|
|
|
# 10% = paper default; test tighter (5%) and wider (15%, 20%)
|
|
|
atr_stop_multiplier: [0.05, 0.10, 0.15, 0.20]
|
|
|
|
|
|
# RVOL threshold: filters by relative volume at open
|
|
|
# Note: RVOL here is approximate (daily avg based), not true first-5-min RVOL
|
|
|
min_rvol: [0.8, 1.0, 1.5, 2.0]
|
|
|
|
|
|
# Candidate pool size per day
|
|
|
max_candidates: [10, 20]
|
|
|
|
|
|
# R-multiple to move stop to breakeven
|
|
|
breakeven_at_r: [1.0, 1.5]
|
|
|
|
|
|
# R-multiple to activate trailing stop
|
|
|
trailing_at_r: [1.5, 2.0, 3.0]
|
|
|
|
|
|
# Order timeout: cancel unfilled breakout orders after N minutes
|
|
|
order_timeout_minutes: [30, 45, 60]
|
|
|
|
|
|
# Risk per trade (% of equity)
|
|
|
risk_per_trade_pct: [0.0025, 0.005]
|
|
|
|
|
|
# GFV / settlement constraint: 0=disabled (legacy), 1=T+1 (realistic cash account)
|
|
|
settlement_days: [0, 1]
|
|
|
|
|
|
# Max opening gap: null=no cap, 3%=tight, 5%=moderate, 10%=loose
|
|
|
max_gap_pct: [0.03, 0.05, 0.10, null]
|