배경
우리 트레이딩 시스템은 이미 세 가지 전략을 페이퍼 트레이딩으로 운영하고 있었습니다: Pipeline (추세 추종), BB Squeeze (볼린저 밴드 브레이크아웃), MACD Divergence (다이버전스 역전).
이 세 전략의 공통 약점: 시장이 횡보 구간에 들어가면 신호가 거의 0에 수렴.
우리 ADX 지표는 주요 6개 코인 모두 20 이하를 보여주었습니다 — 명확한 추세가 없는 상태. 추세 추종 전략들은 할 일이 없었죠.
그래서 네 번째 전략을 만들었습니다: 평균 회귀.
로직
컨셉은 간단합니다:
- RSI 35 미만 (과매도) → RSI 반등 대기 → 롱 진입
- RSI 65 초과 (과매수) → RSI 하락 대기 → 숏 진입
- 스톱로스: 1.5× ATR
- 이익실현: BB 중심선 (평균 회귀 목표)
횡보 시장에서는 가격이 밴드 내에서 반등합니다. 이론상 평균 회귀는 완벽한 전략이어야 했죠.
백테스트 결과 — 너무 완벽했다
180일 히스토리컬 데이터, 6개 코인 × 2 방향 = 12개 조합:
| 조합 | 승률 | 수익 팩터 | 거래 수 |
|---|---|---|---|
| SOL LONG | 100% | ∞ | 3 |
| XRP LONG | 100% | ∞ | 3 |
| XRP SHORT | 85.7% | 7.93 | 7 |
| DOGE LONG | 83.3% | 5.19 | 6 |
| DOGE SHORT | 80% | 3.5 | 5 |
| ETH SHORT | 75% | 2.3 | 4 |
| BNB SHORT | 75% | 2.0 | 4 |
| BTC SHORT | 71.4% | 1.8 | 7 |
70% 이상 승률 8개 조합. 100% 3개.
만약 그때 바로 라이브로 갔다면, 이 전략이 무적이라고 생각했을 겁니다.
빨간 신호: 샘플 크기
계속 신경 쓰이는 숫자가 하나 있었습니다: 거래 수.
100% 승률의 SOL LONG과 XRP LONG, 각각 겨우 3번의 거래.
3번 거래에서 100% 승률은 통계적 의미가 거의 0입니다. 동전 던지기에서 3번 연속 앞면이 나올 확률은 12.5%. 그렇게 희귀한 일도 아니죠.
아웃오브샘플 검증
모든 조합에 OOS 검증을 돌렸습니다:
- 180일을 **첫 120일 (In-Sample)**과 **마지막 60일 (Out-of-Sample)**로 분할
- 첫 120일에서 파라미터 훈련
- 마지막 60일에서 테스트 — 모델이 한 번도 본 적 없는 데이터
결과:
| 조합 | IS 승률 | OOS 승률 | 하락폭 |
|---|---|---|---|
| SOL LONG | 100% | 75% | -25% |
| XRP LONG | 100% | 0% | -100% |
| ETH SHORT | 100% | 25% | -75% |
| DOGE LONG | 83% | 50% | -33% |
| BTC SHORT | 80% | 40% | -40% |
| BTC LONG | 67% | 33% | -34% |
| BNB LONG | 67% | 50% | -17% |
XRP LONG: IS 100% → OOS 0%. 훈련 데이터에서는 완벽했지만, 새로운 데이터에서는 모든 거래가 손실.
ETH SHORT: IS 100% → OOS 25%. 백테스팅에서는 4승, 미지의 데이터에서는 1승뿐.
단 2개 조합만 생존
12개 조합 중 안정적인 OOS 성능을 유지한 것은 단 2개뿐:
- SOL LONG: IS 78% → OOS 75% (단 3% 격차)
- DOGE SHORT: IS 80% → OOS 76% (단 4% 격차)
이 2개만 페이퍼 트레이딩에 보냈습니다. 나머지 10개는 잘라냈죠.
과적합의 원인
근본 원인은 작은 샘플 크기:
- 평균 회귀는 극단적인 RSI 값에서만 트리거
- 180일 동안 각 조합은 단 3-7번의 거래만 생성
- 3번 거래에서 100% 승률 ≠ 전략이 효과적
- 7번 거래에서 85% 승률도 결론 내리기엔 부족
통계학 101: 이진 결과(승/패)에 합리적인 신뢰도를 갖으려면 최소 20-30개의 샘플이 필요. 우리 조합 대부분은 한 자릿수였습니다.
Z-점수 검증
전략 성능이 무작위보다 유의미하게 뛰어난지 Z-점수로 정량화합니다:
| |
- Z > 1.96 → 95% 신뢰도로 무작위보다 우수
- Z > 2.58 → 99% 신뢰도
우리 주력 전략 Pipeline (414거래, 72% 승률):
| |
Z = 8.94, 2.58을 훨씬 상회. 이 전략은 진짜로 무작위를 능가합니다.
반면 MR의 SOL LONG (3거래, 100%):
| |
Z = 1.73, 95% 신뢰도에도 못 미침. 통계가 말하길: 이건 그냥 운일 수도 있다.
현재 프로세스
이 경험 후, 모든 새 전략은 라이브 배포 전 세 가지 검증을 통과해야 합니다:
- 최소 거래 수: 백테스팅에서 최소 20거래
- OOS 검증: IS와 OOS 승률 격차 10% 미만
- Z-점수 테스트: Z > 1.96
하나라도 실패 = 배포 금지. 예외 없음.
현재 전략 현황:
| 전략 | 거래 수 | 승률 | Z-점수 | 상태 |
|---|---|---|---|---|
| Pipeline | 414 | 72% | 8.94 | ✅ 주력 |
| BB Squeeze | 82 | 56% | 1.09 | ⚠️ 보조 |
| MACD Div | 45 | 33% | -2.28 | ⚠️ 선별 페어만 |
| Mean Reversion | 53 | 25% | -3.64 | ❌ 단 2페어 |
Pipeline만이 견고한 검증을 통과한 유일한 전략. 나머지들은 신뢰도 구축에 더 많은 데이터가 필요합니다.
결론
백테스트에서 100% 승률이 나온다면, OOS 검증으로 입증되기 전까지는 가짜라고 가정하세요.
소샘플 백테스트 결과는 트레이딩 시스템 개발에서 가장 위험한 함정입니다. 착각을 만들어냅니다: 이 전략은 완벽하다. 하지만 완벽한 전략은 존재하지 않습니다 — 완벽한 백테스트는 대개 그냥 과적합일 뿐입니다.
백테스팅은 나쁜 전략을 제거하는 도구이지, 좋은 전략을 증명하는 도구가 아니다. OOS 검증을 통과한 전략도 돈을 못 벌 수 있지만, 실패한 전략은 분명히 실제 트레이딩에서 실망시킬 것이다.