Python 검증과 MT5 실계좌에서 92-98% 괴리가 발생한 이야기
목차
- 전략 사양 — 아시아 레인지 → NY 세션 브레이크아웃
- Python Walk-Forward 결과 — 화려한 수치
- 그러나 — MT5 실계좌 14년 BT (USDJPY_NY_BREAKOUT_EA.mq5 v2.0)
- 왜 이렇게까지 괴리가 발생하는가 — 5가지 추론
- 1. 스프레드/슬리피지 미반영
- 2. 데이터 품질
- 3. 체결 모델 괴리
- 4. ATR×2단계 TP의 실계좌 취약성
- 5. CASCADE 반복리의 실계좌 악영향
- 업계 수준의 교훈
- 1. Python BT/Walk-Forward는 **MT5 실계좌의 참고 지표가 되지 못한다**
- 2. "경제적으로 합리적인 가설"도 실계좌 검증이 필수
- 3. CLAUDE.md "실계좌 검증 필수 원칙"의 근거 강화
- FXEA365의 판단
- 업계 제언 — Python BT 사용자에게
- 관련 링크
Python 검증과 MT5 실계좌에서 92-98% 괴리가 발생한 이야기
FXEA365 운영자입니다.
이번 글에서는 2026-05-29에 NY Session Breakout 전략을 Python Walk-Forward와 MT5 실계좌 14년 백테스트로 비교 검증한 결과, 92-98%의 PF 괴리를 확인한 경위를 모두 공개합니다.
이는 **"Python BT에서 화려한 수치가 나와도 MT5 실계좌에서 동일하게 작동한다는 보장은 없다"**는 사실을 업계 수준에서 다시 한번 증명하는 중요한 데이터입니다.
전략 사양 — 아시아 레인지 → NY 세션 브레이크아웃
| 항목 | 설정 |
|---|---|
| 타임프레임 | H1 |
| Asia 레인지 | 0-4h UTC (아시아 시간 레인지 형성) |
| 트레이드 시간 | 15-20h UTC (NY 세션 중) |
| 진입 | 아시아 시간 High/Low 브레이크 |
| 청산 | SL = ATR × 0.5 / TP1 = ATR × 0.5 (50% 청산) / TP2 = ATR × 7.0 |
| 랏 | Risk 2% (CASCADE 반복리) |
이론적으로는 엣지가 있는 전략:
- NY 세션 (UTC 15-20시 = 한국시간 새벽 0-5시)은 기관투자자 활동 시간대로 유동성이 집중됨
- 아시아 레인지는 자연스러운 참조값이며, 그 상하단 돌파는 방향성이 강한 시그널
- 2단계 청산 (TP1=ATR×0.5 / TP2=ATR×7)으로 페이크 브레이크 방어 + 추세 포착
Python Walk-Forward 결과 — 화려한 수치
2026-05-27부터 28일에 걸쳐 scripts/gen_h1_ny_walkforward.py로 **9개 통화의 WF (Train 60% / Test 40%)**를 실행:
| Pair | train PF | test PF | test DD | test WR | 일관성 | OOS 생존율 |
|---|---|---|---|---|---|---|
| EURUSD | 7.42 | 9.03 | 5.47% | 79.6% | 0.82 | 500/500 |
| GBPUSD | 11.78 | 13.00 | 31.85% | 84.2% | 0.91 | 500/500 |
| XAUUSD | 7.76 | 11.96 | 13.18% | 80.9% | 0.65 | (이전 검증) |
| EURJPY | 9.41 | 7.93 | 7.46% | 79.2% | 0.84 | 500/500 |
| GBPJPY | 9.74 | 8.24 | 12.30% | 79.3% | 0.85 | 500/500 |
| USDJPY | 6.12 | 11.62 | 36.24% | 80.7% | 0.53 | (이전 검증) |
| CADJPY | 7.59 | 5.76 | 32.81% | 75.9% | 0.76 | 499/500 |
| AUDJPY | 8.49 | 6.32 | 27.33% | 74.4% | 0.74 | 351/500 |
| NZDJPY | 9.22 | 6.51 | 15.05% | 70.6% | 0.71 | 500/500 |
9개 통화 전부 PF≥5 × 승률≥70% × OOS 생존율 500/500.
업계 관행대로라면 **"꿈의 범용 엣지 발견!" "전 통화 로드맵으로 라인업 확장!"**이라며 사이트에 공개했을 법한 결과입니다.
그러나 — MT5 실계좌 14년 BT (USDJPY_NY_BREAKOUT_EA.mq5 v2.0)
CLAUDE.md의 "실계좌 검증 필수 원칙"에 따라, Python WF에서 가장 강력했던 4개 통화를 MT5 실계좌 14년 BT로 재검증했습니다:
| Pair | Python WF (test) | MT5 실계좌 14년 BT | 괴리율 | 계좌 결과 |
|---|---|---|---|---|
| USDJPY | PF 11.62 / DD 36% | PF 0.77 / DD 99.72% | −93% | -$9,966 (거의 전액 손실) |
| EURUSD | PF 9.03 / DD 5.47% | PF 0.73 / DD 99.84% | −92% | -$9,984 (거의 전액 손실) |
| GBPUSD | PF 13.00 / DD 31.85% | PF 0.21 / DD 101.12% | −98% | -$10,112 (계좌 파산) |
| EURJPY | PF 7.93 / DD 7.46% | PF 0.49 / DD 100.01% | −94% | -$10,001 (계좌 파산) |
**4개 통화 전부 실패, Python WF와의 PF 괴리는 92-98%**입니다.
왜 이렇게까지 괴리가 발생하는가 — 5가지 추론
1. 스프레드/슬리피지 미반영
Python BT는 close-to-close 기준으로 계산됩니다. 실계좌에서는 스프레드 (0.5-2 pips) + 슬리피지로 매 체결이 악화되며, 1거래당 1-3 pips의 손실이 누적됩니다.
2. 데이터 품질
Python은 Dukascopy M5 → H1 집계 데이터를 사용합니다. MT5 실계좌는 브로커 틱 데이터 (더 정밀한 가격 움직임)를 사용합니다. 동일한 "H1 캔들"이라도 내부 가격 움직임이 다릅니다.
3. 체결 모델 괴리
Python은 이상적 체결 (희망 가격으로 항상 체결)을 가정합니다. MT5 실계좌는 거래량/스프레드 제약으로 희망 가격과 실제 체결 가격이 괴리됩니다. 특히 변동성이 높은 시간대 (NY 오픈 직후 등)에서 두드러집니다.
4. ATR×2단계 TP의 실계좌 취약성
이론상으로는 우아한 설계이지만, TP2=ATR×7은 실계좌에서 달성되지 않습니다.
- Python BT: 과거 데이터를 "결과론적으로" 최적화한 SL/TP 계산
- 실계좌: SL=ATR×0.5가 빈번히 발생하고, TP2=ATR×7까지 추세가 이어지지 않아 손절이 연속됨
5. CASCADE 반복리의 실계좌 악영향
잔고에 따라 랏을 동적으로 조정하는 설계가 손실 국면에서 피해를 가속시킵니다:
- 잔고 $10K → Risk 2% → Lot 0.2
- 연패로 잔고 $8K → Risk 2% → Lot 0.16 (소폭 감소)
- 연패로 잔고 $5K → Risk 2% → Lot 0.10 (손실 억제 효과 없음)
이론상의 "복리 마법"이 실계좌에서는 역효과로 작용합니다.
업계 수준의 교훈
1. Python BT/Walk-Forward는 MT5 실계좌의 참고 지표가 되지 못한다
- "PF≥5 × WR≥70% × OOS 생존율 500/500"도 실계좌에서는 무의미
- WF의 "robust" "OOS 견고" 판정은 Python 데이터 내에서의 견고성 평가일 뿐, 실계좌를 대체하지 못함
2. "경제적으로 합리적인 가설"도 실계좌 검증이 필수
- "기관투자자의 NY 시간대 활동" "아시아 레인지 상하단 돌파는 방향성 시그널"은 이론적으로는 옳음
- 그러나 MT5 실계좌 14년에서 전부 실패 = 이론과 실계좌 사이의 괴리가 크다는 뜻
3. CLAUDE.md "실계좌 검증 필수 원칙"의 근거 강화
- 25EA + NY Session 4종 = 총 29종 검증에서 Python BT는 신뢰할 수 없다는 사실이 완전히 확정됨
- 이는 FXEA365의 브랜드 축 ("화려한 수치가 아닌 실계좌 실증")을 업계 수준에서 뒷받침하는 근거 데이터입니다
FXEA365의 판단
NY Session 전략 9개 통화는 MT5 실계좌 검증에서 전부 실패했으므로 사이트 공개 불가입니다.
공개 라인업은 그대로 유지합니다: EURJPY ASIA / GBPJPY ASIA / BLAZE GOLD / AUDCAD PEACE-CLONE 주력 4종만.
합산 연 수익률 +35.5% (Risk5%)는 결코 화려하지 않지만, 14년 실계좌 BT에서 실제로 검증된 확실한 수치입니다.
업계 제언 — Python BT 사용자에게
Python BT 자체를 부정하는 것은 아닙니다. 다만 다음과 같은 용도 구분을 권장합니다:
| Python BT의 올바른 용도 | 권장도 |
|---|---|
| 전략 아이디어의 초기 검증 (이 방향성이 유망한가) | ✅ 권장 |
| 파라미터 범위 스크리닝 (어디를 정밀 검증할 것인가) | ✅ 권장 |
| WF 견고성 확인 (Train/Test 분리로 과적합 체크) | ✅ 권장 |
| 사이트 게재 수치의 근거 | ❌ 금지 (실계좌와 괴리) |
| "OOS 생존율"을 판매 논리로 사용 | ❌ 금지 (실계좌를 대체할 수 없음) |
| EA 공개 판정 | ❌ 금지 (MT5 실계좌 검증 필수) |
**Python BT의 수치는 어디까지나 "초기 스크리닝 지표"**입니다. 정식 공개에는 MT5 실계좌 검증이 반드시 필요합니다.
관련 링크
- 주력 EA (실계좌 검증 완료):
- ★1 EURJPY ASIA BREAKOUT (14년 실계좌 PF=1.18)
- ★2 GBPJPY ASIA BREAKOUT (14년 실계좌 PF=1.38)
- ★3 BLAZE GOLD v2.30 (7년 실계좌 PF=1.61)
- ★4 AUDCAD PEACE-CLONE (10년 실계좌 PF=1.36)
- 관련 블로그:
FXEA365 — 화려한 공표 수치가 아닌, MT5 실계좌 14년 BT로 실제 작동이 검증된 전략만을 무료로 공개합니다.
관련 기사
📧 가격 인상 사전 알림 + 무료 5일 이메일 강좌
모든 EA는 현재 출시 가격이며 판매 수량에 따라 단계적으로 인상됩니다. 인상 전 사전 알림과 함께 자동매매의 본질, 백테스트 해석법, 브로커 선택 요령을 매일 한 통씩 보내드립니다.
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.