# ORB Gainers V49.91 전략 완전 해설 **버전:** V49.91 (id: 255) **이름:** ORB Gainers V49.91 Broad No-Thrust Liquid Impulse **상태:** candidate (experimental) **부모:** V49.90 (Broad Liquid Leader Impulse Repair) **작성일:** 2026-05-05 --- ## 1. 전략 철학 ORB Gainers의 핵심은 **당일 비정상 관심 종목의 장 초반 돌파**를 포착하는 것이다. 첫 5분봉의 고점 돌파(Opening Range Breakout)를 진입 트리거로 사용하지만, 실제 엣지의 원천은 "압축 후 확장"이 아닌 **비정상 거래량 + catalyst + 당일 시장 관심**이다. V49.91은 기존 메인 ORB 북(book)이 진입하지 않는 날(regime/breadth 통과했지만 primary 후보 없음)에도 **초대형 유동주식(평균 일거래대금 $3억 이상)이 첫 5분봉에서 강한 임펄스(≥3%)를 보일 때** 소규모 추가 슬리브를 통해 포지션을 진입하는 "no-trade-day repair" 기능을 추가한다. 핵심 철학: - 갭 크기보다 **첫 5분봉 임펄스의 강도**가 유동주 계속성을 결정한다 - 갭이 작거나(0~4%) market thrust가 없는 날에도, 충분히 유동적인 리더주는 자체 추진력으로 움직일 수 있다 - 메인 북과 경쟁하지 않고 **보완적으로만** 작동 (no-primary-entries 조건) --- ## 2. 개발 계보 요약 ### V1-V23: 핵심 엔진 수립 | 버전 | 핵심 발견 | 200d 성과 | |------|-----------|-----------| | V1-V3 | 초기 ORB 구조 | -19% | | V8 | weight_momentum + QQQ regime | +19.73% | | V10 | trailing_at_r 1.5→1.0 | +33.17% (400d) | | V15 | streak_sizing + drawdown_governor | +41.60% | | V17 | max_gap_pct 0.04 + no_partial_exit | +84.36% | | V18 | daily_budget_reset + QQQ +0.15% filter | +103.50% | | **V23** | **min_atr_pct=0.04** | **+109.32% (DR 최종)** | ### V24-V48: 신호 축 추가 | 버전 | 핵심 발견 | 200d 성과 | |------|-----------|-----------| | V24 | OBV-slope_20d 신호 (w=0.05) | +94.78% | | V46 | DB Prior-Event PEAD signal (w=0.12) | +114.60% | | V47 | weight 공동 최적화 (ec=0.15, obv=0.10) | +133.29% | | V48 | partial_exit_at_r=1.0, pct=0.30 재활성 | +140.52% (200d), +255.87% (400d) | | **V49** | **min_rvol: 1.5→1.8 (샘플 품질 향상)** | **+155.58% (200d), +259.96% (400d)** | ### V49 서브-버전 계보 (2026-04-24~05-04) V49 (core champion) 위에 별도 "broad" 슬리브 실험들이 누적된 계보다. | 서브버전 | 주요 변경 | 상태 | |---------|-----------|------| | V49.77 | ownership initial size scaling | candidate | | V49.79 | unboosted weak attention governor | candidate | | V49.80 | broad gapup continuation sleeve | candidate | | V49.81 | market thrust breadth override 활성 | candidate | | V49.82 | market thrust liquid continuation 슬리브 추가 | candidate | | V49.83 | market thrust + opening burst 모드 | candidate | | V49.84 | V49.83에서 gapup continuation 비활성화 | candidate | | V49.85 | market thrust institutional 슬리브 | candidate | | V49.86 | opening structure micro 슬리브 | candidate | | V49.87 | soft day budget repair | candidate | | V49.88 | unsupported attention governor 추가 | candidate | | V49.89 | opening impulse reclaim 슬리브 추가 | candidate | | V49.90 | liquid leader impulse repair (no-trade-day) | candidate | | **V49.91** | **no-thrust 별도 임계값으로 liquid impulse 확장** | **candidate** | | V49.93 | ORB idle overnight sleeve | candidate | --- ## 3. V49.91 핵심 변경사항 ### 배경: V49.90의 문제점 V49.90은 시장 thrust가 있는 날, primary 진입이 없을 때만 liquid leader 임펄스 슬리브가 작동하도록 설계했다. 그러나 2026-05-04처럼 **market thrust는 없지만 개별주(IREN)가 강한 임펄스를 보이는 날**에는 진입 기회를 놓쳤다. V49.90이 2026-05-04에 NBIS만 포착하고 IREN은 놓친 이유: - IREN의 갭은 market thrust liquid continuation의 정상 임계값 미충족 - thrust 조건 없는 별도 경로가 없었음 ### V49.91의 해결책 **market thrust 없는 날 전용** 별도 임계값 세트를 추가: ```yaml # 새로 추가된 파라미터들 (V49.91 only) market_thrust_liquid_continuation_no_thrust_min_gap_pct: 0.0 market_thrust_liquid_continuation_no_thrust_max_gap_pct: 0.04 market_thrust_liquid_continuation_no_thrust_min_first_bar_return_pct: 0.03 market_thrust_liquid_continuation_no_thrust_min_first_bar_dollar_vol: 1000000 market_thrust_liquid_continuation_no_thrust_min_avg_dollar_vol: 300000000 market_thrust_liquid_continuation_no_thrust_max_candidates: 3 market_thrust_liquid_continuation_no_thrust_max_trades: 2 market_thrust_liquid_continuation_no_thrust_size_scale: 0.20 ``` **핵심 차이:** - `min_gap_pct: 0.0` — 갭 방향 무관 (0% 갭도 허용) - `min_first_bar_return_pct: 0.03` — 정상 슬리브(0.7%)보다 훨씬 강한 **첫 5분봉 +3% 임펄스** 요구 - `min_avg_dollar_vol: $300M` — 일 평균 거래대금 기준 **초대형 유동주**만 대상 - `size_scale: 0.20` — 정상 risk의 20% (소규모 실험적 진입) 이 슬리브는 정상 market-thrust 슬리브와 **병렬이 아닌 보완** 관계: - thrust 있는 날: 정상 market_thrust_liquid_continuation 작동 (기존 그대로) - thrust 없는 날 + primary 진입 없음: no-thrust 경로로 액세스 가능 --- ## 4. 엔진 구조: 다중 슬리브 아키텍처 V49.91은 단일 진입 엔진이 아닌 **계층적 멀티-슬리브** 구조를 갖는다. ``` [Universe: broad] ↓ [1차 필터: min_price=15, min_avg_dv=$40M, min_atr_pct=4%, min_rvol=3.0] ↓ [스코어링: rvol(0.35)+gap(0.20)+dv(0.05)+premkt_dv(0.25)+obv(0.15)+catalyst(0.15)] ↓ ┌─────────────────────────────────────────────────────┐ │ 슬리브 계층 │ │ │ │ ① 메인 ORB 북 (gainers_leader) │ │ → min_rvol=3.0, min_gap=2%, max_gap=4% │ │ → max_simul=3, risk=5% │ │ │ │ ② Market ORB Quality Scaler (SPY/QQQ ORB 품질) │ │ → SPY/QQQ 첫봉 품질에 따라 size 0.4x~1.1x │ │ │ │ ③ Soft Day Fallback │ │ → regime/breadth 미충족 날: 축소 진입 │ │ → max_trades=2, size_scale=0.1x │ │ │ │ ④ Sector Confirmation │ │ → 같은 섹터 2개+ 동시 돌파 시 1.1x boost │ │ │ │ ⑤ Liquid Leader Conviction │ │ → 고득점(≥0.65) + premkt≥$50M → 2.4x size │ │ │ │ ⑥ Opening Burst (liquid) │ │ → 장 초반 15분 내 강한 돌파 → 1.8x size │ │ │ │ ⑦ Market Thrust Liquid Continuation (thrust 있는 날) │ │ → SPY/QQQ thrust 감지 + primary 없을 때 │ │ → liquid 갭업 추가 진입, 0.20x size │ │ │ │ ⑧ Opening Impulse Reclaim (V49.89 추가) │ │ → 갭 -6%~+2%, 첫봉 +2% 임펄스 │ │ → $3억+ 유동주 late breakout, 0.10x size │ │ │ │ ⑨ No-Thrust Liquid Impulse ★NEW in V49.91★ │ │ → thrust 없는 날 + primary 없을 때 │ │ → 갭 0~4%, 첫봉 +3%, $3억+ 유동주 │ │ → max_candidates=3, max_trades=2, 0.20x size │ │ │ │ ⑩ VWAP Reclaim / Soft Day VWAP │ │ → VWAP 재탈환 late entry, 소규모 │ │ │ │ ⑪ Risk Overlays (손실 제한) │ │ → crowded_gap, downside_gap, distressed 등 │ └─────────────────────────────────────────────────────┘ ``` --- ## 5. 핵심 파라미터 상세 ### 5.1 후보 선별 (Universe & Screening) | 파라미터 | 값 | 설명 | |---------|-----|------| | `universe.source` | broad | 광범위 유니버스 (midlarge보다 넓음) | | `min_price` | 15.0 | 최저 주가 | | `min_avg_dollar_volume` | $40M | 일 평균 거래대금 (유동성 기준) | | `min_atr_pct` | 4% | ATR-14 / prev_close (저변동 제거) | | `min_rvol` | 3.0 | 상대거래량 (V49에서 1.5→1.8→3.0) | | `min_abs_gap_pct` | 2% | 최소 갭 크기 (메인 ORB) | | `max_gap_pct` | 4% | 최대 갭 크기 (crowded 갭 제거) | | `min_premarket_dollar_vol` | $2.5M | 프리마켓 최소 거래대금 | | `max_candidates` | 16 | 최대 후보 수 | | `max_candidates_per_sector` | 3 | 섹터당 최대 후보 (분산) | ### 5.2 스코어링 가중치 | 신호 | 가중치 | 설명 | |------|--------|------| | `weight_rvol` | 0.35 | 상대거래량 (가장 중요) | | `weight_premarket_dollar_vol` | 0.25 | 프리마켓 거래대금 | | `weight_gap` | 0.20 | 갭 크기 | | `weight_event_catalyst` | 0.15 | DB 이벤트 catalyst (PEAD 효과) | | `weight_obv_slope` | 0.15 | OBV 기울기 20d (기관 축적) | | `weight_dollar_vol` | 0.05 | 일 평균 거래대금 | | `weight_close_location` | 0.015 | 전일 종가 위치 | | `weight_body_ratio` | 0.0 | (비활성화) | **스코어링 철학:** - rvol이 핵심 (높은 rvol = 기관/시장 관심의 proxy) - OBV slope: V24에서 도입, 기관 사전 축적 신호 (G2=0.394R로 유일하게 통과한 신호) - event_catalyst: V46에서 도입, PEAD(Post-Earnings Announcement Drift) 효과 활용 ### 5.3 리스크 관리 | 파라미터 | 값 | 설명 | |---------|-----|------| | `risk_per_trade_pct` | 5% | 트레이드당 리스크 (명목; 실효 ~3.4%) | | `max_position_pct` | 70% | 최대 포지션 (실효 리스크 capping 역할) | | `atr_stop_multiplier` | 0.75× | ATR 기반 초기 스탑 | | `breakeven_at_r` | 1.0R | 1R 도달 시 손익분기 이동 | | `trailing_at_r` | 1.0R | 트레일링 스탑 시작 | | `trailing_stop_atr_multiplier` | 0.6× | 트레일링 스탑 폭 | | `trailing_tighten_at_r` | 1.5R | 스탑 타이트닝 시작 | | `trailing_stop_atr_multiplier_tight` | 0.2× | 타이트닝 후 폭 | | `partial_exit_at_r` | 1.0R | 1R 도달 시 부분 청산 | | `partial_exit_pct` | 30% | 부분 청산 비율 (V48에서 재활성) | | `daily_max_loss_pct` | 5% | 일일 최대 손실 | | `max_stops_per_day` | 5 | 일일 스탑 최대 횟수 | | `single_trade_loss_cap_pct` | 13% | 단일 트레이드 최대 손실 | ### 5.4 Drawdown Governor & Streak Sizing | 파라미터 | 값 | 설명 | |---------|-----|------| | `drawdown_governor_threshold` | 2.5% | DD governor 발동 임계값 | | `drawdown_governor_min_scale` | 0.30 | governor 발동 시 최소 size 비율 | | `streak_sizing_win_bonus` | 1.0 | 연속 승리당 size 증가 | | `streak_sizing_max` | 3.0 | streak sizing 최대 배수 | **V23에서 확립된 핵심 메커니즘:** - **Daily Budget Reset**: 매일 $10K 기준으로 sizing (복리 아닌 단리) - **Streak Sizing**: 연속 승리 시 size 누적 (최대 3.0x) — 유리한 regime에서 자연스럽게 포지션 확대 - **DD Governor**: 단기 DD 발생 시 size 축소 → 나쁜 regime에서 손실 제한 --- ## 6. Market Regime & Day Classification ``` ┌─────────────────────────────────────┐ │ QQQ 장 시작 갭 │ └──────────────┬──────────────────────┘ │ ┌────────────────────┴──────────────────────┐ │ │ ≥ +0.15% < +0.15% (정상 regime) (soft/skip regime) │ │ ┌─────────┴──────────┐ ┌────────────┴──────────┐ │ breadth ≥ 60%? │ │ soft day fallback │ └─────────┬──────────┘ │ (size_scale = 10%) │ │ └───────────────────────┘ ┌─────────┴──────────┐ │ 정상 운영 │ │ (메인 ORB 북) │ └─────────┬──────────┘ │ ┌─────────┴────────────────────────────────────────────────┐ │ 보조 슬리브 (필요 시 활성) │ │ - Market Thrust Liquid Continuation (thrust + no primary) │ │ - No-Thrust Liquid Impulse (no thrust + no primary) ★NEW│ │ - VWAP Reclaim, Opening Impulse Reclaim │ └─────────────────────────────────────────────────────────┘ ``` **Soft Day 처리 (regime/breadth 미충족):** - `soft_day_setup_profile: skip_day_reclaim_v1` - 정상 진입 대신 고득점 종목만 소규모 진입 (size_scale 10%) - streak sizing / settlement에서 제외 (`soft_day_exclude_from_streak: true`) --- ## 7. No-Thrust Liquid Impulse 슬리브 상세 (V49.91 신규) ### 7.1 동작 조건 ``` market_thrust_liquid_continuation_only_when_no_primary_entries: true market_thrust_liquid_continuation_only_when_no_primary_trades: true ``` 즉, 메인 ORB 북에서 아무런 진입이 없는 날에만 활성화된다. **No-thrust 경로 (V49.91 추가):** 1. Market thrust 신호 **없음** (SPY/QQQ thrust 미감지) 2. Primary ORB 진입 **없음** 3. 후보 중 다음 조건 충족: - 갭: 0% ~ 4% (갭 방향 무관) - 첫 5분봉 수익률: ≥ +3% - 첫 5분봉 거래대금: ≥ $1M - 평균 일거래대금: ≥ $300M (초대형 유동주) 4. 최대 3개 후보, 최대 2거래, size_scale 0.20 ### 7.2 의도된 유스케이스: 2026-05-04 V49.90은 NBIS(primary 없는 날, thrust 있음)를 잡았으나 IREN(thrust 없음)은 놓쳤다. V49.91은 IREN의 시나리오: - 시장 thrust 없음 - IREN 갭 ~2% (정상 ORB 미진입) - IREN 첫 5분봉 +4% 급등 → no-thrust 경로로 진입 ### 7.3 거절된 대안들 (Validation) | 접근 | 거절 이유 | |------|-----------| | `rejected_liquid_followthrough_today_probe` | 정상 thrust sleeve를 확장하면 낮은 품질 종목 유입 | | `rejected_opening_impulse_trend_guard_200d_probe` | trend guard 추가 시 200d 성과 저하 | --- ## 8. 복합 리스크 오버레이 (Risk Overlays) V49 계열은 종목 특성에 따른 세분화된 리스크 규칙을 가진다: ### 8.1 갭 유형별 처리 | 갭 유형 | 조건 | 액션 | |---------|------|------| | **Crowded Gap** | gap≥2% + ret5d≥15% + 강한 바디 → premkt<$12M | confirm_scale (0.20x) | | **Countertrend Gap** | gap≥2% + ret5d≤0 + 강한 바디 | scale (0.20x) | | **Ranked Downside Gap** | gap≤-5% + premkt≤$5M | loss_cap (1.5%) | | **Gap-Up Fill Exit** | gap 2~25%, premkt≤$10M, 전일 약세 | 갭 채워지면 청산 | | **Thin Gap-Up Loss Cap** | gap 2.5~?, premkt≤$10M, 강한 바디 | loss_cap (0.75%) | | **Moderate Downside Loss Cap** | gap -5~-10%, premkt≤$1억 | loss_cap (1.0%) | ### 8.2 이력 기반 필터 | 필터 | 목적 | |------|------| | `conditional_gap_zscore_reject_above: 2.5` | 비정상적으로 큰 갭 (ret5d 음수 시) 거절 | | `rolling_loss_days: 7, threshold: -7%` | 최근 7일 -7% 초과 손실 시 거래 중단 | | `min_breakout_rel_vol: 1.2` | 돌파 시 ORB 평균 대비 1.2배 이상 거래량 요구 | ### 8.3 특수 진입 유형 | 유형 | 조건 | 크기 | |------|------|------| | **Distressed Reclaim** | 갭≤-5% + ret5d≤-10% + premkt≥$1억 | 10% size + 2% loss cap | | **Hot Reclaim** | 갭≥5% + ret5d≥30% + 강한 바디 | 20% size + 0.5% loss cap | | **Weak Downside Reclaim** | 갭≥2% + ret5d≥50% + 약한 바디 | loss_cap 3% | | **Stalled Gap-Up** | 갭 2~8% + premkt≤$5M + 약한 바디 | 10% size reserve | | **Liquid Stalled Gap-Up** | 갭 2~8% + premkt≥$5M + 약한 바디 | 10% size reserve | --- ## 9. 백테스트 결과 및 현재 검증 상태 ### 9.1 V49 (core) 확정 성과 | 지표 | 200d | 400d | |------|------|------| | 수익률 | **+155.58%** | **+259.96%** | | Max DD | -10.91% | -9.21% | | Sharpe | 3.877 | 3.404 | | 거래 수 | 166 | 373 | *기준: daily_budget_reset=true, compound_returns=false, $10K initial* ### 9.2 V49.91 검증 데이터 | 프로브 | 윈도우 | 결과 | |--------|--------|------| | `no_thrust_midliquid_today_probe` | 당일(2026-05-04) | IREN 포착 확인 | | `no_thrust_liquid_impulse_60d_probe` | 60d | 참조: `tmp/v49_91_no_thrust_liquid_impulse_60_probe/` | | `no_thrust_liquid_impulse_200d_probe` | 200d | 참조: `tmp/v49_91_no_thrust_liquid_impulse_200_probe/` | **주의:** V49.91은 아직 `candidate` 상태다. 정식 200d/400d 프로모션 게이트를 통과하지 않았다. 실험적 슬리브로서 메인 ORB 북에 독립적으로 추가되므로 하방 리스크는 제한적이나, 상방 기여도는 아직 미검증. ### 9.3 V49 계열 (V48→V49 개선 요인) V48 대비 V49의 +12.32pp (400d) 개선은 `min_rvol: 1.5→1.8` 단 하나의 변경으로 달성: - rvol이 낮은(1.5~1.8x) 저신뢰도 후보 제거 - 남은 후보는 더 강한 momentum 신호를 가짐 - 동시에 400d 거래 수는 오히려 증가(367→373) — 품질 향상이지 거래량 감소가 아님 --- ## 10. V49 서브버전 개발 맥락 V49.77부터 V49.93까지의 서브버전들은 **핵심 V49 파라미터는 고정한 채** broad 유니버스에서 새로운 진입 기회를 포착하는 보조 슬리브를 탐색한다. ### 10.1 개발 흐름 ``` V49 (core: min_rvol=1.8) └─ V49.77: 소유구조 기반 initial size scaling └─ V49.79: 비지지 attention 약세 governor └─ V49.80: broad gapup continuation 시도 └─ V49.81: SPY/QQQ market thrust override 도입 └─ V49.82: market thrust + liquid continuation 슬리브 └─ V49.83: market thrust + opening burst 모드 └─ V49.84: gapup continuation 비활성 (negative EV 확인) └─ V49.85: institutional 슬리브 └─ V49.86: opening structure micro └─ V49.87: soft day budget repair └─ V49.88: unsupported attention governor └─ V49.89: opening impulse reclaim (갭 -6%~+2%, 첫봉 2%+) └─ V49.90: liquid leader impulse repair (thrust 있는 날) └─ V49.91: no-thrust liquid impulse (thrust 없는 날) ← 현재 └─ V49.93: ORB idle overnight sleeve ``` ### 10.2 누적 슬리브에 포함된 주요 기능들 V49.91 전략 파일은 standalone YAML 기준으로 다음 기능을 포함한다: 1. **Market ORB Quality Scaler** (SPY/QQQ ORB 캔들 품질 → size 조정) 2. **Soft Day Fallback** (regime/breadth 미충족 시 소규모 진입) 3. **Sector Confirmation** (동일 섹터 동반 돌파 보너스) 4. **Liquid Leader Conviction** (초우량주 고신뢰 진입 2.4x) 5. **Opening Burst** (15분 내 초기 돌파 1.8x) 6. **Market Thrust Liquid Continuation** (thrust 있는 날 liquid 계속) 7. **Opening Impulse Reclaim** (V49.89에서 추가) 8. **No-Thrust Liquid Impulse** ← V49.91에서 신규 추가 --- ## 11. 알려진 한계 및 주의사항 ### 11.1 레짐 의존성 (CRITICAL) V23 분석에서 확인된 구조적 취약점: - **600d 백테스트**: -51.25% DD — 전략이 2024~2026 고ATR 모멘텀 레짐에 특화됨 - 2024년 이전(특히 2023년 하반기) 다른 레짐에서는 심각한 DD 가능성 - **권고사항**: 라이브 배포 시 계좌 레벨 서킷브레이커 설정 (고점 대비 -25% 시 일시 중단) ### 11.2 V49.91 슬리브 특이사항 - **실험적 상태**: 200d/400d 정식 게이트 미통과 - **소규모 포지션**: size_scale 0.20 (정상의 20%) → 메인 북에 미미한 영향 - **no-trade-day 빈도 낮음**: primary 진입이 없는 날만 활성 → 연간 수십 회 수준 예상 - **단순성**: 3% 첫봉 임계값은 단순하지만 거짓 신호 위험 존재 (빠른 역전) ### 11.3 레지스탕스 레벨 테스트 (검증 필요) V49.91의 no-thrust 슬리브가 200d/400d 전체 성과에 미치는 영향이 아직 완전히 검증되지 않았다. `no_thrust_liquid_impulse_200d_probe` 결과를 반드시 검토 후 정식 운용 여부를 결정해야 한다. --- ## 12. 라이브 운용 참고사항 ### 12.1 일일 체크리스트 ``` 09:20 ET 이전: □ Oracle 데이터 갱신 완료 확인 (09:20 ET 전 필수) □ DB 스냅샷 최신화 (daily_bar_snapshot_id, prior_event_snapshot_id) 09:25 ET: □ 스케줄러 자동 시작 □ QQQ 갭 확인 (≥+0.15% = 정상 regime) □ breadth 확인 (≥60% = 정상 운영) 장 중: □ 서킷브레이커 모니터링 (계좌 -25% 시 수동 중단) □ rolling_loss 트리거 여부 확인 ``` ### 12.2 스냅샷 설정 ```yaml daily_bar_snapshot_id: orb_daily_v46_20260423 prior_event_snapshot_id: orb_pead_d10_v46_20260423 ``` 이 스냅샷들은 백테스트 재현성을 위해 고정되어 있다. 실시간 운용에서는 최신 스냅샷으로 교체 필요. --- ## 13. 핵심 인사이트 요약 V49.91을 이해하기 위한 3가지 핵심 통찰: **① 엣지의 원천은 "당일 비정상 관심"** 높은 rvol + 강한 갭 + 기관 축적(OBV) + 사전 catalyst가 결합할 때 ORB 돌파 후 이어달리기(continuation)가 발생한다. 이 중 하나라도 빠지면 WR이 급감. **② regime 필터는 보호막이지 제한이 아님** QQQ +0.15% 필터를 제거하면 수익이 반토막(-51pp). regime 나쁜 날 2개의 손실이 rolling_loss gate를 촉발해 그 이후 좋은 날까지 막는 "오염 효과" 때문. **③ 슬리브는 메인 북을 보완하지 대체하지 않음** 모든 보조 슬리브(thrust, impulse, VWAP reclaim)는 메인 ORB가 진입하지 않는 날/경우에만 작동한다. 이 독립성이 전체 포트폴리오의 안정성을 유지한다. --- *문서 작성: 2026-05-05 | 기반 데이터: project_orb_gainers_lineage.md, V49.90/V49.91 YAML 설정*