v9 Exit Strategies — Research
진입 전략만큼 엑싯 전략이 결과를 좌우한다. v5.x의 Fixed TP 30%, SL -50%, max 180~365일은 단순하고 강건하지만:
- 바이오텍 binary event는 30%에서 멈추지 않고 100~300% 가는 경우 많음 → TP 너무 낮으면 기회손실
- 50% SL은 delisting 임박 종목에서 -100% 근처까지 끌고 가는 경우 있음 → SL 정교화 여지
- 180일 max_hold에서 강제 청산되는 winning pattern들 존재
이 리서치는 바이오텍 특성에 맞는 다양한 exit 전략을 정리한다.
A. Fixed Rule 계열
A1. Basic Fixed TP/SL (v5.x baseline)
현재 simulate_fixed_exit. TP·SL·max_days 3개 파라미터.
장점:
- 가장 단순, 구현 완료, 검증됨
- 기계적 실행 가능
단점:
- TP에 맞으면 그 이상 수익 포기
- SL은 종종 rally 직전에 맞음 (stop hunting)
파라미터 공간:
- TP: 0.20, 0.30, 0.50, 0.70, 1.00, 1.50
- SL: -0.30, -0.40, -0.50, -0.70
- max_days: 60, 90, 120, 180, 365
A2. Asymmetric TP:SL Ratio
원리: 승률 낮고 승리 큰 전략 → TP:SL = 3:1, 4:1 → 매우 유리 파라미터: TP/|SL| 비율 = 1, 1.5, 2, 3, 5
우선순위: HIGH — 바이오텍 tail return에 최적화
A3. Time-Based Exit
원리: 정해진 일수 도달하면 무조건 청산 (TP/SL 미도달이어도)
파라미터: max_days만 (다른 파라미터 없음)
참고: v5.2 분석에서 max 180일이 max 365일보다 CAGR 높게 나옴 → time-based의 효용 입증
우선순위: MEDIUM — 이미 max_days 파라미터로 포함
B. Dynamic Stops — 추세 따라 이동
B1. Trailing Stop (% 기반)
원리:
- 최고가 대비 N% 하락하면 청산
- N = 20%, 30%, 40% 등
장점:
- 큰 winner의 tail 포착 가능 (TP에 막히지 않음)
- 추세 따라 자동 adjusting
단점:
- 변동성 큰 바이오텍에서는 일반 변동에 stop 맞기 쉬움
- Too tight: 일찍 나감 / Too loose: trailing 의미 없음
파라미터:
- trail_pct: 15%, 20%, 25%, 30%, 40%
기존 구현: simulate_trailing_exit ✓
우선순위: HIGH
B2. ATR-Based Trailing (Chandelier Exit)
원리:
- Stop = Highest High(N) - M × ATR(N)
- ATR = Average True Range → 변동성 자체를 stop 거리에 반영
장점:
- 변동성 적응형 → noise 감내하고 추세 유지
- 바이오텍 소형주 (변동성 큼)에 이론적 적합
단점:
- ATR 계산 필요 (high-low 포함)
- M 값 튜닝 민감
파라미터:
- ATR period: 10, 14, 20
- Multiplier M: 2.0, 2.5, 3.0, 3.5
구현 필요: 새 함수 simulate_atr_trailing_exit
우선순위: HIGH — 바이오텍 변동성 대응에 적합
B3. Parabolic SAR (PSAR)
원리:
- 가속도 상승하는 stop line (Welles Wilder)
- AF (Acceleration Factor) 매일 증가
장점:
- 추세 강해질수록 stop 타이트 → 이익 보전
단점:
- 횡보장에서 whipsaw
- 파라미터 AF 시작값·증가값·최대값 (3개)
- 복잡도 높음
우선순위: LOW — 복잡도 대비 이점 불명확
B4. Breakeven Stop (BE Stop)
원리:
- 수익 +X% 도달하면 stop을 진입가(0%) 로 이동
- 이후 진입가 하향 시 무손실 exit
장점:
- 큰 손실 가능성 제거 → MaxDD 감소에 직접적
- v5.x SL -50% 대비 안정성 향상
단점:
- BE 발동 후 다시 상승하면 그 사이 이익 제한 없음 (TP로 통제 필요)
기존 구현: simulate_breakeven_sl_exit ✓
파라미터:
- be_trigger: 15%, 20%, 25%, 30%
- initial_sl: -0.40, -0.50, -0.70
우선순위: HIGH — MaxDD 개선 goal에 직결
B5. Volatility-Expansion Stop
원리:
- 과거 N일 변동성 대비 비정상적 하락 시 exit
- daily_return < -2×σ(daily_returns, 20) → stop
우선순위: LOW-MEDIUM — 구현 복잡, 이점 불명확
C. Scaling Exits — 부분 청산
C1. 50/50 at TP1 + Trailing
원리:
- TP1 도달 시 50% 청산 (확정 이익)
- 남은 50%는 trailing stop (tail 수익 추구)
장점:
- Lock in some profit + 상승 여력 유지
- Psychology-friendly (일부 이익 실현)
단점:
- 복잡 (두 개의 state 관리)
- TP1 정의 + trail 거리 필요
파라미터:
- TP1: 0.20, 0.30, 0.50
- trail_pct (post TP1): 0.20, 0.30
구현 필요: 신규 simulate_partial_trail_exit
우선순위: HIGH
C2. 33/33/33 Scaled (Progressive TPs)
원리:
- TP1: 30% → 33% 청산
- TP2: 70% → 33% 청산
- TP3: 150% → 33% 청산 (or trailing)
장점:
- 큰 winner 효율적으로 scaling out
- 여러 checkpoint로 안정성 ↑
단점:
- 3개 레벨 + sizing 복잡
- 3레벨 다 맞는 경우 드묾
기존 구현: simulate_scaled_tp_sl_exit (50/50 변형)
우선순위: MEDIUM
C3. Pyramid-style (Anti-scaling, 일부 차단)
원리:
- TP1 도달 후 남은 포지션 stop을 TP1 가격으로 이동
- = 남은 포지션은 “최소 TP1 수익 guarantee”
우선순위: MEDIUM
D. Structure-Based Exits — 차트 기반
D1. Swing High Break Failure
원리:
- 최근 swing high (예: 20일 최고가) 돌파 시도 실패
- = 상방 모멘텀 소진 → exit
탐지:
1. 진입 후 최고점 H_max 기록
2. 현재 close < H_max * 0.85 (15% 이상 빠짐)
3. 최근 5일 내 H_max 갱신 실패
-> exit
장점:
- 추세 리더십 잃으면 즉시 exit → capital efficiency
우선순위: MEDIUM
D2. Bearish Reversal Pattern
원리:
- Shooting star, bearish engulfing, evening star 발생 시 exit
장점:
- 반대 reversal 시그널 정직한 exit
단점:
- False positive (일시 pullback을 reversal로 오인)
우선순위: LOW-MEDIUM — 구현 복잡 대비 효용 불명확
D3. Moving Average Cross-Down
원리:
- close가 20MA 아래로 내려오면 exit
- 또는 20MA < 50MA (dead cross)
장점:
- 간단, 객관적
단점:
- MA lagging → 이미 많이 하락한 후 exit
- 바이오텍 변동성엔 너무 잦은 whipsaw
우선순위: LOW
D4. Fibonacci Retracement Stop
원리:
- 엔트리 이후 rally 최고점 대비 38.2%, 50%, 61.8% 되돌림 시 exit
- = 구조적 retrace 허용 수준 내 유지
우선순위: MEDIUM-LOW
E. Catalyst / Event-Based
E1. Clinical Trial Milestone Exit
원리:
- 보유 종목의 임상 milestone (topline readout) 전 1-3일 exit
- 이유: binary event 리스크 회피 (±70% 변동)
장점:
- Binary risk 회피
- Pre-catalyst run-up 이익 확정
단점:
- 대박 catalyst 상승 놓침
- 구현 복잡 (clinical_trials 테이블 필요)
- 바이오텍 strategy는 catalyst ride 기대하는 경우도 많음
데이터 사용 가능성:
clinical_trials테이블: 43.8% 커버리지 → 이용 가능 but 제한적- completion_date 활용
우선순위: MEDIUM — 별도 연구 주제 규모
E2. Earnings Exit
원리:
- 실적 발표 직전 1-2일 exit
우선순위: LOW — 바이오텍은 매출 없는 경우 대부분, earnings 의미 낮음
E3. FDA Action Date (PDUFA) Exit
원리:
- PDUFA date (FDA 승인 결정일) 직전 exit
단점:
- PDUFA 데이터 별도 수집 필요 (현재 DB 없음)
우선순위: LOW — 데이터 부재
바이오텍 특수성 반영 — Hybrid Exits
H1. TP + Breakeven Combination
원리:
- 초반: SL -50%
- +25% 도달 시 BE stop
- +50% 도달 시 TP 실행
우선순위: HIGH — breakeven_sl 확장
H2. TP Ratcheting (Progressive TP)
원리:
- TP를 고정이 아니라 시간에 따라 낮춤
- Day 0~30: TP 100%
- Day 31~90: TP 50%
- Day 90+: TP 30%
= “오래 못 맞으면 작은 이익이라도”
우선순위: MEDIUM — 신선한 아이디어
H3. Volatility-Adjusted TP/SL
원리:
- TP·SL 수준을 종목의 일반 변동성 (ATR)로 설정
- TP = entry + 5×ATR
- SL = entry - 3×ATR
우선순위: MEDIUM-HIGH
우선순위 요약
TIER 1 (반드시 구현·테스트)
- A1. Fixed TP/SL (baseline, 다양한 파라미터)
- A2. Asymmetric 비율 — 바이오텍 tail에 최적화
- B1. Trailing Stop (% 기반)
- B2. ATR-Based Trailing (Chandelier) — 구현 신규 필요
- B4. Breakeven Stop — 기존 확장
- C1. 50/50 at TP1 + Trailing — 구현 신규 필요
- H1. TP + BE Combination
TIER 2 (여유 있으면)
- C2. 33/33/33 scaled (기존 확장)
- D1. Swing High Break
- H2. TP Ratcheting
- H3. Volatility-Adjusted TP
제외
- B3. Parabolic SAR
- D2. Bearish Reversal
- D3. MA Cross-Down
- E1-E3. Catalyst exits (데이터·복잡도)
구현 작업 요약
신규 구현 필요 함수
simulate_atr_trailing_exit(Chandelier Exit)simulate_partial_trail_exit(50/50 + trail)simulate_progressive_tp_exit(time-based TP decay) — H2simulate_volatility_adjusted_exit— H3
기존 함수 확장
simulate_fixed_exit: 파라미터 그대로 사용, 조합 증가simulate_trailing_exit: 파라미터 스윕simulate_breakeven_sl_exit: 파라미터 스윕 + 조합 (TP 다양)simulate_scaled_tp_sl_exit: 기존 그대로
테스트 필요
- 각 신규 함수 unit test (synthetic data)
- 기존 함수 regression 검증
Grid Backtest 조합 설계
Entry TIER 1 (8개) × Exit TIER 1 (7개) = 56 base combos
- 파라미터 variants (각 2~3개) = 최대 150+ configs
→ 실전적으로 상위 configs ~30-50개만 진행 + 확장.
Grid 실행 설계는 다음 단계 (기획 revise) 에서 최종 확정.
Next step
→ 기획서 revise (Task #20): Entry+Exit research 결과 기반으로 최종 grid 조합 확정