_meta:
  id: 30
  name: "ORB × Leader Momentum Hybrid V2"
  description: >
    V1 버그 수정 버전. V23 파라미터 정렬(max_position_pct 0.70, max_total_deployment_pct
    2.10, max_candidates_per_sector 3). Dual-trigger(ORB + 09:45 momo confirm) +
    Leader overlay(5d ≥ +15%) 유지.
    Parents: orb_gainers_v23 + leader_intraday_momentum_high_wr_intraday_first.
    *** ACTUAL 200d result (2026-04-21 retest): +85.68%, WR 60%, DD -11.56%, Sharpe 2.67 ***
    (Stale description claimed +116.34% — was from old pipeline/data. V23 TRUE baseline is
    +109.32%. Hybrid V2 is WORSE than V23 by 23.64pp. REJECTED. status: research_only.)
    Note: confounded by permissive risk params (max_sim=5, daily_max_loss=5%); dual-trigger
    did not compensate. V23 remains definitive champion.

strategy_mode: orb

orb_strategy:
  engine_family: gainers_leader
  live_readiness: research_only

  # ── Dual-trigger ──
  dual_trigger_enabled: true
  momo_entry_minutes_after_open: 10
  momo_confirmation_minutes_after_entry: 5
  momo_confirm_window_minutes: 55
  momo_min_confirmation_return_pct: 0.005
  momo_min_morning_gain_pct: 0.015
  momo_max_morning_gain_pct: 0.06

  # ── ORB trigger (V23) ──
  orb_minutes: 5
  sim_bar_minutes: 5
  entry_direction: long_only
  order_timeout_minutes: 45
  allow_doji_breakout: true
  allow_red_to_green_breakout: true
  min_breakout_rel_vol: 1.2

  # ── Universe / quality (V23) ──
  min_price: 10.0
  min_avg_dollar_volume: 25000000
  min_atr_14: 0.50
  min_atr_pct: 0.04
  min_rvol: 1.5
  min_abs_gap_pct: 0.02
  min_premarket_dollar_vol: 1500000
  max_gap_pct: 0.04
  max_candidates: 20
  max_candidates_per_sector: 3
  min_candidates_to_trade: 1
  ticker_cooldown_days: 0

  # ── Candidate overlays ──
  candidate_seed_leader_overlay_slots: 1
  candidate_seed_leader_min_gap_pct: -0.025
  candidate_seed_leader_max_gap_pct: 0.01
  candidate_seed_leader_min_avg_dollar_vol_30d: 500000000.0
  candidate_seed_leader_min_ret_5d: 0.15
  candidate_seed_leader_min_atr_pct: 0.06
  candidate_seed_leader_max_entropy_20d: 0.75
  candidate_seed_liquid_overlay_slots: 3
  candidate_seed_liquid_min_gap_pct: 0.005
  candidate_seed_liquid_max_gap_pct: 0.025
  candidate_seed_liquid_min_avg_dollar_vol_30d: 5000000000.0
  candidate_seed_liquid_min_ret_5d: 0.0
  candidate_seed_liquid_max_entropy_20d: 0.87

  # ── Ranking weights (V23) ──
  weight_rvol: 0.35
  weight_gap: 0.20
  weight_dollar_vol: 0.05
  weight_premarket_dollar_vol: 0.25
  weight_body_ratio: 0.0
  weight_momentum: 0.15

  # ── Exit discipline (V23) ──
  atr_stop_multiplier: 0.75
  breakeven_at_r: 1.0
  trailing_at_r: 1.0
  trailing_stop_atr_multiplier: 0.8
  trailing_tighten_at_r: 2.0
  trailing_stop_atr_multiplier_tight: 0.3
  partial_exit_at_r: 99.0
  partial_exit_pct: 0.50
  exit_minutes_before_close: 5

  # ── Portfolio / risk ──
  max_simultaneous_entries: 5
  risk_per_trade_pct: 0.05
  max_position_pct: 0.70
  max_total_deployment_pct: 2.10
  daily_max_loss_pct: 0.05
  max_stops_per_day: 5
  slippage_bps: 5.0
  initial_capital: 10000
  compound_returns: false
  daily_budget_reset: true
  settlement_days: 1

  # ── Regime gates ──
  market_regime_spy_threshold: 0.0015
  market_regime_ticker: QQQ
  min_candidate_breadth: 0.60
  rolling_loss_days: 7
  rolling_loss_threshold: -0.07
  max_vix: 30.0

  # ── Drawdown governor / streak (V23) ──
  drawdown_governor_threshold: 0.025
  drawdown_governor_min_scale: 0.30
  streak_sizing_win_bonus: 0.70
  streak_sizing_max: 2.5

  # ── Entropy size scaler (disabled — V1 버그 수정) ──
  entropy_size_scale_low: null
  entropy_size_scale_high: null
  entropy_size_scale_min: 0.6
  max_entropy: 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_hybrid
  verbose: false
