_meta: id: 30 name: "ORB Gainers V23 Safe v2" status: validated parent: orb_gainers_v23 description: > V23 파생 전략 — "안전 투자자" v2. v1(+5.16%, DD -13.49%)보다 DD를 줄이는 것이 목표. 핵심 발견 (v1 분석): - V23 손실일의 QQQ 갭: +0.3%~+3.4% → QQQ 임계값 강화는 효과 없음 - 손실은 QQQ 방향이 아닌 개별 종목 실패에서 발생 - DD는 손실 클러스터(Oct/Sep 2025)에서 집중 발생 v2 접근법: 1. Rolling loss governor 강화: 손실 직후 즉시 거래 중단 (-2% threshold) 2. Partial exit 활성화: 1R(0.75ATR) 도달시 50% 이익 실현 → 많은 거래를 "무조건 수익"으로 3. 포지션 축소: risk 5%→2% (손실 기회당 절대액 감소) 4. 동시 포지션: 3→2 (손실 클러스터링 방지) 5. QQQ 레짐: 유지 (효과 없음이 증명됨 — 더 강화해도 소용없음) 6. Streak sizing 비활성화 (안전 우선) 200d 검증 결과 (2025-07-03 → 2026-04-20): - 수익: +36.67% (V23 +109.32% 대비) - Max DD: -11.54% (고점 대비, 그러나 시작 자본 이하 0일!) - Sharpe: 2.24 - 시작 자본($10k) 이하: 0일 (최저점 $10,017 on 2025-07-09) - 최악의 하루: -$344 (V23 -$981 대비) - 거래일: 49/200, 거래: 154건 strategy_mode: orb orb_strategy: engine_family: gainers_leader live_readiness: experimental 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_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_candidates: 20 max_candidates_per_sector: 3 min_candidates_to_trade: 1 ticker_cooldown_days: 0 max_gap_pct: 0.04 min_candidate_breadth: 0.60 market_regime_spy_threshold: 0.0015 market_regime_ticker: QQQ rolling_loss_days: 5 # === KEY CHANGE: stop IMMEDIATELY after $200 loss (was -7%) === rolling_loss_threshold: -0.02 # === CHANGE: max 2 simultaneous (was 3) === max_simultaneous_entries: 2 min_breakout_rel_vol: 1.2 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 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 # === KEY CHANGE: lock in 50% at 1R (was disabled at 99R) === partial_exit_at_r: 1.0 partial_exit_pct: 0.50 # === CHANGE: smaller per-trade risk (was 0.05) === risk_per_trade_pct: 0.02 max_position_pct: 0.70 # === CHANGE: tighter daily loss cut (was 0.05) === daily_max_loss_pct: 0.02 max_stops_per_day: 3 exit_minutes_before_close: 5 slippage_bps: 5.0 initial_capital: 10000 compound_returns: false daily_budget_reset: true settlement_days: 1 # === CHANGE: tighter portfolio governor (was 0.025) === drawdown_governor_threshold: 0.015 drawdown_governor_min_scale: 0.50 # === CHANGE: no streak sizing (was bonus=0.70, max=2.5) === streak_sizing_win_bonus: 0.0 streak_sizing_max: 1.0 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