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.

89 lines
2.5 KiB
YAML

# ORB Phase 3 Winner — Universe Filters & Entry Timeout
#
# Phase 3b sweep (20 combos, IS 2022-2024 / OOS 2025-present):
# Best OOS Sharpe: 1.663 (max_gap=0.05, order_timeout=20)
# OOS return: +29.0%, OOS max DD: -8.54%, OOS trades: 3447, OOS WR: 51.3%
#
# vs Phase 2 winner (max_gap=0.03, timeout=45):
# OOS Sharpe: 1.562, OOS return: +27.1%, OOS DD: -8.80%
# Improvement: +0.10 Sharpe (+6.5%), +1.9pp return, -0.26pp DD
#
# Key insight: max_gap=0.05 is the sweet spot (0.03 too tight, 0.10/null too loose).
# Note: IS Sharpe is slightly positive (0.067) vs Phase 2's -0.157 — better regime fit.
#
# Parameters changed vs orb_p2_winner.yaml:
# max_gap_pct: 0.05 (was 0.03 — broader gap filter admits better momentum candidates)
# order_timeout_minutes: 20 (was 45 — tighter timeout, fewer stale entries)
strategy_mode: orb
orb_strategy:
# ORB window
orb_minutes: 5
sim_bar_minutes: 5 # Phase 1 winner
# Entry
entry_direction: long_only # Phase 1 winner
order_timeout_minutes: 20 # Phase 3 winner (was 45)
# 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 # Phase 3 confirmed
max_candidates: 20 # Phase 3 confirmed
min_candidates_to_trade: 3
# Composite ranking weights
weight_rvol: 0.60
weight_gap: 0.25
weight_dollar_vol: 0.15
# ATR-based stop management (Phase 1+2 winner values)
atr_stop_multiplier: 1.00 # Phase 1 winner
breakeven_at_r: 1.0 # Phase 2 winner
trailing_at_r: 2.0 # Phase 2 winner
trailing_stop_atr_multiplier: 0.3 # Phase 2 winner
# Risk-based position sizing
risk_per_trade_pct: 0.0025
max_position_pct: 0.20
daily_max_loss_pct: 0.0125 # Phase 3 confirmed (limit rarely binding)
max_stops_per_day: 3 # Phase 3 confirmed (limit rarely binding)
# Exit
exit_minutes_before_close: 5
# Execution
slippage_bps: 5.0
initial_capital: 10000
ticker_cooldown_days: 0
# Cash account settlement
settlement_days: 1
# Gap filter — Phase 3 winner
max_gap_pct: 0.05 # Phase 3 winner (was 0.03)
# Market regime filters (disabled)
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