v9 Entry Strategies — Research
v9 기획서에서 지적한 기존 bounce_back/hammer 전략의 한계를 보완하기 위해, 추세반전 + pullback + confirmation 관점에서 광범위하게 조사한다.
기준:
- 바이오텍 소형주 고변동성 환경 적합성
- 현재 보유 데이터 (close/open/high/low/volume) 로 구현 가능성
- Split-adjusted 가격 필수
- Daily 데이터 기반 (intraday 불가)
A. Pullback 계열 — “더 싸게 진입”
기존 bounce_back의 문제: 저점에서 +30% 올라온 뒤 진입 → 이미 과매수. 해결: 시그널 발생 후 되돌림(pullback) 을 기다려 더 싼 가격에 진입.
A1. Bounce + Pullback Entry
원리:
- Step 1: bounce_back 시그널 발생 (저점 대비 +30% 반등)
- Step 2: 이후 N거래일 내 고점 대비 −5% ~ −15% 되돌림이 나오면 진입
- Step 3: 되돌림이 −20% 이상이면 추세 취소로 간주하고 폐기
장점:
- 기존 bounce의 편익(바닥 확인) + 낮은 진입가
- 첫 반등 후 retrace는 통계적으로 흔함 (38.2%~61.8% Fibonacci retrace)
단점:
- 시그널 후 눌림 없이 바로 날아가는 케이스 놓침
- 파라미터 많음 (retrace %, 유효기간 N일)
구현:
def detect_bounce_pullback(prices, bounce_pct=0.30, pullback_pct=0.08,
pullback_window=10, cooldown=90):
bounce_signals = detect_bottom_bounce(prices, bounce_pct=bounce_pct)
for each bounce signal on date d0, price p0:
scan forward [d0+1, d0+pullback_window]:
if any close < p0 * (1 - pullback_pct):
entry at that date
파라미터 공간:
bounce_pct: 0.20, 0.25, 0.30pullback_pct: 0.05, 0.08, 0.10, 0.15pullback_window: 5, 10, 15 일
우선순위: HIGH — Dan의 핵심 요청에 직결
A2. Breakout Pullback (저항선 돌파 후 재진입)
원리:
- 하락 추세 중 저항선(최근 고점) 돌파 확인
- 돌파 이후 N일 내 해당 저항선 근처로 되돌아오면 진입 (retest 성공 진입)
장점:
- 추세 전환 + 확인 + 싼 진입 3박자
단점:
- 저항선 정의가 주관적 (swing high 계산 복잡)
- 성공률이 낮음 (retest 실패도 많음)
구현:
1. 20일 최고점 H = max(close, window=20)
2. 현재 close > H*1.02: 돌파 확인
3. 이후 10일 내 close가 H*[0.98, 1.02] 범위로 복귀하면 진입
우선순위: MEDIUM
A3. Moving Average Pullback
원리:
- 상승 추세 시작 확인 (20MA > 50MA 골든크로스 등)
- 이후 가격이 20MA 또는 50MA 근처로 되돌아올 때 진입 (“buy the dip”)
장점:
- 추세 확인 후 진입 → Safer
- MA는 객관적 레벨
단점:
- 바이오텍 횡보/하락장에서 MA 정렬 자체가 드묾
- 진입 기회가 적을 수 있음
구현:
1. 20MA cross above 50MA (golden cross)
2. 이후 30일 내 close가 20MA 이하로 내려옴 → 진입
파라미터:
- MA 기간: (5,20), (10,30), (20,50)
- touch_tolerance: 0%, 2%, 5%
우선순위: MEDIUM — 바이오텍 추세 부재 시 아웃풋 적을 수 있음
B. 추세반전 계열 — “강한 시그널”
hammer보다 통계적으로 강한 reversal 시그널들.
B1. MACD Bullish Crossover
원리:
- MACD 라인이 Signal 라인을 상향 돌파 (histogram 0 → 양수 전환)
- 바이오텍에서는 특히 MACD가 0 이하에서 상향 돌파하는 “oversold reversal”이 유효
장점:
- 객관적 수치 (EMA 12, 26, Signal 9)
- 광범위 검증된 지표
- 기존
detect_macd_reversal존재 — 재검증·강화
단점:
- Lagging indicator (이미 반등한 후 시그널)
- False positive 많음 (횡보장)
파라미터:
- MACD period: (12, 26, 9) 표준 or (5, 13, 5) 빠른 버전
- 0선 이하 조건: on/off
- 거래량 확인: 5일 vol > 20d MA
우선순위: HIGH — 기존 시그널 재검증 + 파라미터 탐색
B2. RSI Bullish Divergence
원리:
- 가격은 신저점 경신 but RSI는 previous low보다 더 높음 (higher low)
- = 매도 압력 약화 → 반등 시그널
탐지 방법:
1. Find local lows in close (peaks of -close, within N-day window)
2. For each pair of consecutive lows (L1, L2):
if close(L2) < close(L1) AND RSI(L2) > RSI(L1): bullish divergence
3. Entry when price breaks above recent swing high OR confirmation bar
장점:
- 전통적으로 강한 reversal 시그널
- 바닥권에서 특히 효과적
단점:
- 구현 복잡 (swing detection)
- Daily 데이터 한계 (weekly로 봐야 더 확실)
파라미터:
- RSI period: 14 표준 or 7, 21
- Swing low window: 10, 20 일
- 유효 구간: 가장 최근 2-3 swing 내
우선순위: HIGH — 강한 시그널, 차별화 요소
B3. Double Bottom / W-Pattern
원리:
- 저점을 두 번 형성 (거리 10-60일, 저점 간격 ≤5%)
- 두 번째 저점 후 중간 반등 고점 돌파 시 진입
탐지:
1. Find two local lows L1, L2 with |close(L1) - close(L2)| / close(L1) < 0.05
2. Distance(L1, L2) ∈ [10, 60] days
3. Middle high H between L1 and L2
4. After L2, close > close(H) → entry
장점:
- 차트 패턴으로 유명, 통계 입증
- 기존
detect_double_bottom존재 — 검증·강화
단점:
- 패턴 엄격히 맞는 케이스 드묾
- False pattern (계속 하락) 많음
파라미터:
- L1-L2 distance: [10,60], [15,45], [20,40]
- tolerance between L1, L2: 3%, 5%, 8%
- breakout confirmation: +1%, +2%, +3%
우선순위: HIGH
B4. Ichimoku Cloud Breakout
원리:
- 가격이 구름(Senkou Span A, B) 위로 돌파
- Tenkan > Kijun + Chikou > 26일 전 가격
장점:
- 강력한 추세 시스템 (일본 기관 널리 사용)
단점:
- 5개 파라미터 복잡
- 바이오텍 반전 진입에 부적합 (cloud 자체가 잘 형성 안 됨)
우선순위: LOW — 실용성 낮음
B5. Wyckoff Spring / Failed Breakdown
원리:
- 최근 support(저점) 아래로 잠깐 깨고 (spring)
- 같은 날 혹은 다음 날 support 위로 회복 마감
- = 약한 매수자 털기 → 강한 반등 시작
탐지:
1. Identify recent support S (20-day low)
2. Day D intraday low < S*0.97
3. Day D or D+1 close > S
4. Volume on D above average
장점:
- 전통적 Wyckoff 이론, 바이오텍 capitulation 패턴과 잘 맞음
- 명확한 entry level (false breakdown 직후)
단점:
- Intraday low 필요 → 우리 데이터는 daily (low column 있음 ✓)
- Support 정의 주관적
파라미터:
- Support window: 20, 30 일
- Breakdown depth: 2%, 3%, 5%
- Recovery window: 1, 2 일
우선순위: HIGH — 바이오텍 폭락-반등 패턴에 정확히 부합
B6. 3-Bar Flush & Snap
원리:
- 3일 연속 큰 폭 하락 (각 -3% 이상 또는 volume 급증)
- 4일째 강한 양봉 (close > open, 전일 high 돌파)
장점:
- 단기 panic 매도 끝 → 반등 포착
- 간단한 규칙, 객관적
단점:
- 종종 False (더 큰 하락의 시작)
파라미터:
- Flush bar count: 2, 3, 4 일
- Min daily drop: 2%, 3%, 5%
- Snap confirmation: close > open, close > prev high
우선순위: HIGH — 간단한 reversal, 구현 쉬움
B7. OBV / Volume Accumulation Divergence
원리:
- 가격 신저점 but OBV(On-Balance Volume)는 higher low
- = 매집(accumulation) 중이라는 볼륨 신호
탐지:
OBV[t] = OBV[t-1] + volume[t] if close[t] > close[t-1]
- volume[t] if close[t] < close[t-1]
+ 0 if same
Find swing lows in close and swing lows in OBV
If close swing low decreases but OBV swing low increases → divergence
장점:
- 기존
detect_obv_divergence존재 — 재검증 - 볼륨 기반 → 더 신뢰 가능
단점:
- 정확한 swing detection 필요
- 시그널 발생 빈도 낮음
우선순위: MEDIUM
B8. Key Reversal Bar
원리:
- 당일 low < 전일 low (더 떨어짐)
- but 당일 close > 전일 high (더 강하게 마감)
- = 당일 내 방향 완전 전환
장점:
- 단순, 객관적
- 하루 만에 센티먼트 전환 포착
단점:
- 바이오텍 소형주에서는 자주 발생하지만 false 많음
파라미터:
- Volume confirmation: 전일 대비 1.5x+
- 기존 대비 하락폭: 최근 5일 중 최저
우선순위: MEDIUM-HIGH — 단순 & 검증 가치 있음
C. 필터 보강 계열
C1. Oversold + Fundamental Safety
원리:
- RSI(14) < 30 + Cash runway > 2년 + 파이프라인 활성
- 반등 대기하지 않고 oversold 자체를 진입 시그널로
구현: 기존 유니버스 필터가 이미 fundamental 커버 → RSI 추가만
우선순위: LOW — 유니버스 필터와 중복
C2. Capitulation Volume Spike
원리:
- 거래량 20일 평균의 3x 이상 + 당일 종가 >= 저가+ 50% 수준(망치형 양봉)
- = panic selling 정점 + 반등 시작
탐지:
volume[t] > 3 * avg_volume_20d
(high[t] - low[t]) > 1.5 * avg_range_10d # big range
(close[t] - low[t]) / (high[t] - low[t]) > 0.5 # close in upper half
장점:
- 강한 심리적 전환점
- 볼륨 + 캔들 형태 조합
단점:
- 진짜 capitulation 구분 어려움 (더 떨어질 수도)
우선순위: HIGH — 바이오텍 panic 패턴에 적합
C3. 52-Week Low + MA Recovery
원리:
- 최근 10일 내 52주 최저 경신 + 현재 close가 20MA 위로 복귀
우선순위: MEDIUM
D. Confirmation 계열
D1. Multi-Signal OR Ensemble
원리:
- v5.x의 bb_30 + hammer 방식을 확장
- 3-4개 signal OR + 최근 N일 내 cluster 발생 시 강화
파라미터:
- Ensemble 구성: 다양한 top-tier 시그널 조합
- Cluster bonus: N일 내 2+ 시그널 발생 시 우선
우선순위: HIGH — 기존 확장, 자연스러운 진화
D2. Multi-Timeframe Alignment
원리:
- Daily signal + Weekly confirmation
- 예: daily bb_30 + weekly close > weekly 20MA
장점:
- False signal 필터링 효과
단점:
- 시그널 빈도 급감 (거래 수 감소 우려)
우선순위: LOW — Goal 1 (거래 빈도 증가)과 충돌
우선순위 요약 — v9에서 구현/테스트할 후보
TIER 1 (반드시 구현·테스트)
- A1. Bounce + Pullback — Dan의 핵심 요청
- B1. MACD reversal (파라미터 재탐색)
- B2. RSI bullish divergence
- B3. Double bottom
- B5. Wyckoff Spring (바이오텍 패턴 적합)
- B6. 3-Bar Flush & Snap
- C2. Capitulation Volume Spike
- D1. Multi-Signal OR ensemble (최종 백테스트용)
TIER 2 (시간 있으면)
- A2. Breakout pullback
- A3. MA pullback
- B7. OBV divergence (재검증)
- B8. Key Reversal bar
제외
- B4. Ichimoku (실용성 낮음)
- C1. RSI only (유니버스 중복)
- C3. 52w low + MA (약한 시그널)
- D2. Multi-timeframe (거래 수 감소)
구현 순서 제안
- Phase 1 — TIER 1 중 구현 안된 것들 먼저 구현:
- A1 bounce_pullback
- B2 rsi_divergence
- B5 wyckoff_spring
- B6 3bar_flush
- C2 capitulation_volume
- Phase 2 — 기존 시그널 파라미터 스윕:
- B1 macd, B3 double_bottom 재파라미터
- Phase 3 — Tier 2 시도 (진입 다양성 부족 시)
- Phase 4 — D1 ensemble 구성
예상 개별 시그널 수: 8개 (TIER 1 기반)
각 시그널마다 파라미터 12개 변형 → entry 후보 **1216개**
→ exit 후보와 grid 후 상위 20개 정도로 좁히는 구도