|
|
# ORB Rebuild Phase 3 — Universe, Risk & Filters
|
|
|
#
|
|
|
# After Phase 2 determines best stop management, update base_config
|
|
|
# to the Phase 2 winner, then sweep universe/risk parameters.
|
|
|
#
|
|
|
# 3 × 3 × 3 × 3 × 3 × 2 = 486 combinations (단리)
|
|
|
#
|
|
|
# IMPORTANT: Update base_config to Phase 2 winner before running!
|
|
|
#
|
|
|
# Run:
|
|
|
# python -m apps.intraday_bt.evaluate \
|
|
|
# --config configs/intraday/strategies/orb_rebuild_p2_winner.yaml \
|
|
|
# --sweep configs/intraday/sweep_orb_rebuild_p3.yaml \
|
|
|
# --start 2022-01-01 --split-date 2025-01-01
|
|
|
|
|
|
base_config: configs/intraday/orb_p2_winner.yaml # Phase 2 winner: breakeven=1.0, trailing=2.0, trailing_atr=0.3
|
|
|
|
|
|
sweep:
|
|
|
# Candidates per day: fewer = higher quality, more = broader coverage
|
|
|
max_candidates: [20, 30, 50]
|
|
|
|
|
|
# Minimum RVOL: higher = stronger volume signal, fewer candidates
|
|
|
min_rvol: [0.5, 1.0, 2.0]
|
|
|
|
|
|
# Order timeout: how long to wait for breakout fill
|
|
|
order_timeout_minutes: [20, 45, 90]
|
|
|
|
|
|
# Daily risk limits
|
|
|
max_stops_per_day: [3, 10, 20]
|
|
|
daily_max_loss_pct: [0.0125, 0.02, 0.05]
|
|
|
|
|
|
# Max opening gap filter
|
|
|
max_gap_pct: [0.03, 0.10, null]
|
|
|
|
|
|
compound_returns: [false]
|