You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.4 KiB
YAML

# ORB Phase 8 Winner — Bar Size Confirmation
#
# Phase 8a (15 combos): 30/60/90m bars produced 0 trades due to
# order_timeout_minutes=20 < sim_bar_minutes → order expires before first bar close.
#
# Phase 8b (8 combos, timeout=120): larger bars WORSE, not better:
# sim=5m: OOS 1.84 (best)
# sim=30m: OOS -3.26 (catastrophic)
# sim=60m: OOS -4.92
# sim=90m: OOS -6.06
#
# Root cause: atr_stop=1.25 (wide) + trailing_at_r=2.0 (tight) is incompatible
# with large bars. Trailing stop only updates at bar close — within a 30m bar,
# large reversals aren't caught. Original ORB worked with atr=0.30 (tight stop).
#
# Conclusion: sim_bar_minutes=5 is optimal for this strategy configuration.
# No parameter changes vs orb_p7_winner.yaml.
strategy_mode: orb
orb_strategy:
# ORB window
orb_minutes: 5
sim_bar_minutes: 5 # Phase 8 confirmed: 5m optimal for atr=1.25
# Entry
entry_direction: long_only
order_timeout_minutes: 20 # Phase 3 winner
# Universe quality filters
min_price: 10.0
min_avg_dollar_volume: 25000000
min_atr_14: 0.50
# RVOL-based candidate selection
min_rvol: 1.0
max_candidates: 20
min_candidates_to_trade: 3
# Composite ranking weights
weight_rvol: 0.40 # Phase 4 winner
weight_gap: 0.35 # Phase 4 winner
weight_dollar_vol: 0.15
weight_body_ratio: 0.0 # Phase 4 confirmed
weight_momentum: 0.0 # Phase 5 confirmed
# ATR-based stop management
atr_stop_multiplier: 1.25 # Phase 6 winner
breakeven_at_r: 1.0 # Phase 2 winner (Phase 9 will fine-tune)
trailing_at_r: 2.0 # Phase 2 winner (Phase 9 will fine-tune)
trailing_stop_atr_multiplier: 0.3
# Risk-based position sizing
risk_per_trade_pct: 0.0025 # Phase 4 confirmed
max_position_pct: 0.20
daily_max_loss_pct: 0.0125
max_stops_per_day: 3
# Exit
exit_minutes_before_close: 10 # Phase 6 winner
# Execution
slippage_bps: 5.0
initial_capital: 10000
ticker_cooldown_days: 2 # Phase 7 winner
# Cash account settlement
settlement_days: 1
# Gap filter
max_gap_pct: 0.04 # Phase 6 winner
# Market regime filter
market_regime_spy_threshold: null
min_candidate_breadth: null
universe:
source: midlarge
backtest:
start_date: null
end_date: null
lookback_trading_days: 200
cache:
enabled: true
dir: data/cache/intraday
output:
dir: runs/intraday_orb
verbose: false