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.30
  • pullback_pct: 0.05, 0.08, 0.10, 0.15
  • pullback_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 (반드시 구현·테스트)

  1. A1. Bounce + Pullback — Dan의 핵심 요청
  2. B1. MACD reversal (파라미터 재탐색)
  3. B2. RSI bullish divergence
  4. B3. Double bottom
  5. B5. Wyckoff Spring (바이오텍 패턴 적합)
  6. B6. 3-Bar Flush & Snap
  7. C2. Capitulation Volume Spike
  8. 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 (거래 수 감소)

구현 순서 제안

  1. Phase 1 — TIER 1 중 구현 안된 것들 먼저 구현:
    • A1 bounce_pullback
    • B2 rsi_divergence
    • B5 wyckoff_spring
    • B6 3bar_flush
    • C2 capitulation_volume
  2. Phase 2 — 기존 시그널 파라미터 스윕:
    • B1 macd, B3 double_bottom 재파라미터
  3. Phase 3 — Tier 2 시도 (진입 다양성 부족 시)
  4. Phase 4 — D1 ensemble 구성

예상 개별 시그널 수: 8개 (TIER 1 기반)

각 시그널마다 파라미터 12개 변형 → entry 후보 **1216개** → exit 후보와 grid 후 상위 20개 정도로 좁히는 구도