Volume Lead 전략 가이드
전략 개요
거래량 선행(Volume Lead) 매집 전략 — 가격이 횡보하는 중 거래량 급증이 발생하면
매집 신호로 기록하고, 이후 일정 수준 이상 상승 시 진입하는 선진입 전략.
핵심 아이디어: 대형 매수자는 가격을 올리지 않고 조용히 매집한다.
거래량이 먼저 급증하고, 가격 상승은 그 뒤에 따라온다.
진입 조건 (2단계)
1단계: 매집 신호 감지
다음 두 조건 동시 충족 시 signal_price 기록:
| 조건 |
파라미터 |
기본값 |
| 2h 가격 변동 < N% (횡보) |
PRICE_QUIET_PCT |
2.0% |
| 직전 1h 거래량 ≥ 로컬 5h 평균 × M배 |
VOLUME_MULTIPLIER |
2.0x |
- 신호 발생 시 텔레그램 알림 발송
SIGNAL_TIMEOUT_H 내 진입 조건 미달 시 신호 초기화 (기본: 8h)
- 신호가 이하 하락 시 즉시 초기화 (매집 실패 판단)
2단계: 추세 확인 후 진입
signal_price 대비 +TREND_AFTER_VOL% 이상 상승 확인 시 매수:
| 파라미터 |
기본값 |
설명 |
TREND_AFTER_VOL |
4.8% |
신호가 대비 진입 임계값 |
청산 조건
트레일링 스탑 (ATR 기반)
- ATR 5봉 × 1.5 계수 → 동적 손절폭 산출
- 최소 1.0% / 최대 4.0% 범위 내 자동 조정
- 최고가 대비 손절폭 이하 하락 시 즉시 청산
타임 스탑
- 보유
TIME_STOP_HOURSh 경과 후 수익률 < TIME_STOP_MIN_GAIN_PCT% 이면 청산
- 기본값: 8시간 경과 / 수익률 3% 미만
리스크 관리
Walk-Forward (WF) 필터
| 파라미터 |
기본값 |
설명 |
WF_WINDOW |
2 |
이력 윈도우 (직전 N건) |
WF_MIN_WIN_RATE |
0.01 |
최소 승률 임계값 (1%) |
WF_SHADOW_WINS |
2 |
차단 해제 조건 (가상 N연승) |
- 직전 2건 모두 손실 → 해당 종목 진입 차단
- 차단 후 가상 추적으로 2연승 달성 시 자동 복귀
예산 관리 (복리)
- 수익 발생 시:
운용예산 = 초기예산 + 누적수익 (복리 증가)
- 손실 발생 시:
운용예산 = 초기예산 + 누적수익 (차감)
- 하한선: 초기예산의 30% (기본: 4,500,000원)
- 포지션당 크기:
운용예산 / MAX_POSITIONS
시장 레짐 적응
| 레짐 |
BTC 1h 변동 |
거래량 기준 |
| BULL |
+5% 이상 |
1.5x |
| NEUTRAL |
±5% 이내 |
2.0x |
| BEAR |
-5% 이하 |
진입 차단 |
- BEAR 레짐 감지 시 신규 진입 전면 차단
- 레짐별
vol_mult 조정으로 민감도 제어
운용 설정 (.env)
백테스트 결과 요약
365일 (2025-03-02 ~ 2026-03-02) — WF 적용
| 항목 |
값 |
| 초기 예산 |
15,000,000원 |
| 최종 자산 |
29,996,109원 |
| 수익률 |
+100% |
| 최대 낙폭 |
-3.81% (-57만원) |
| 거래수 |
190건 (WF 183건 차단) |
| 승률 |
46% |
| 월평균 수익 |
약 115만원 |
45일 Walk-Forward 검증 (2026-01-15 ~ 2026-03-02)
| 기간 |
거래수 |
승률 |
수익률 |
| Train (77일) |
66건 |
42% |
+22.5% |
| Test (45일) |
67건 |
61% |
+49.9% |
Train/Test 모두 수익 → 오버피팅 아님.
주요 파일
| 파일 |
역할 |
core/strategy.py |
진입 신호 로직 |
core/monitor.py |
ATR 트레일링 스탑 + 타임스탑 |
core/trader.py |
주문 실행 + 복리 예산 관리 |
core/market_regime.py |
시장 레짐 감지 |
ohlcv_db.py |
OHLCV 시계열 DB 캐시 관리 |
sim_365.py |
365일 복리 시뮬레이션 |
vol_lead_sim.py |
전략 파라미터 스윕 도구 |
시뮬레이션 실행