Claude Code로 EA 백테스트 에러 한방에 해결 - 하향 그래프가 우상향으로
한줄 요약
MetaTrader 4 EA 백테스트에서 발생한 수백 개 에러를 Claude Code와 함께 해결하고, 하향 그래프를 우상향 그래프로 바꾼 경험을 공유합니다.
이런 분들께 도움돼요
알고리즘 트레이딩 EA를 개발 중인데 백테스트 에러로 막힌 개인 투자자
MQL4 코드는 작성했는데 Error 130, 5004 같은 에러 때문에 진행이 안 되는 분들
EA 전략은 좋은데 기술적인 문제로 테스트조차 못 하고 있는 트레이더
문제 상황 (Before)
AI 적응형 트레이딩 시스템(014)을 개발하고 백테스트를 돌렸더니 참담한 결과가 나왔습니다.
백테스트 결과:
그래프: 우하향 곡선 (손실)
로그창: 빨간 에러 메시지 수백 개
실제 거래: 0건
OrderSend error 130
OrderSend error 130
OrderSend error 130
... (수백 번 반복)
Failed to write signal file. Error: 5004
OrderDelete error 4108
에러 코드가 뭔지는 구글링으로 찾았지만, 내 코드 어디가 문제인지 도저히 모르겠더군요. MQL4 공식 문서를 읽어봐도 해결 방법을 찾을 수 없었습니다.
혼자서는 해결할 수 없다는 판단이 들었습니다.
사용한 도구
도구명: Claude Code
모델: Claude Sonnet 4.5
특이사항: 연말까지 Max Limit 제한이 풀려서 사용 (무제한)
AI와 협업한 과정
1. 백테스트 로그 분석 요청
상황: 백테스트 결과가 처참했습니다. 에러가 너무 많아서 어디서부터 손대야 할지 막막했어요.
이렇게 요청했어요:
2025.12.28 15:08:28.045 ETHUSD,H4: 91054950 tick events (1527 bars, 91055508 bar states) processed in 0:33:37.500 2025.12.28 15:08:28.045 014-AI_Adaptive_System_EA ETHUSD,H4: OrderSend error 130 2025.12.28 15:08:28.045 014-AI_Adaptive_System_EA ETHUSD,H4: Failed to write signal file. Error: 5004 2025.12.28 15:08:28.045 014-AI_Adaptive_System_EA ETHUSD,H4: OrderDelete error 4108
문제 분석하고 개선하라
결과: Claude가 로그를 분석해서 4가지 주요 에러를 정확히 찾아냈습니다:
Error 130 (Invalid Stops) - TrapEngine의 StopLevel 위반
Error 5004 (File Write) - 백테스트 모드에서 파일 쓰기 시도
Error 4108 (Invalid Ticket) - 이미 삭제된 주문 재삭제 시도
거래 미실행 - TrendEngine/RangeEngine 진입 로직 미구현
느낀 점: "에러 코드 130이 StopLevel 문제다"라고 딱 집어내는 순간 소름 돋았습니다. 제가 며칠 동안 구글링해도 못 찾은 원인을 몇 초 만에 찾아낸 거죠.
2. 파일별 자동 수정
상황: 문제를 알았으니 이제 고쳐야 하는데, TrapEngine, TrendEngine, RangeEngine, NotificationManager 등 여러 파일을 동시에 수정해야 했습니다.
이렇게 요청했어요:
(추가 요청 없음 - Claude가 알아서 진행)
결과: Claude가 자동으로 각 파일을 읽고 수정했습니다:
TrapEngine.mqh: StopLevel 검증 로직 추가, OrderDelete 전 티켓 유효성 검사
TrendEngine.mqh: ATR 기반 동적 SL/TP, RSI 교차 진입 로직 구현
RangeEngine.mqh: 볼린저 밴드 평균회귀 로직 구현
NotificationManager.mqh: 백테스트 모드 감지 후 파일 작업 스킵
DataManager.mqh: 백테스트 모드 처리 추가
느낀 점: 한 파일씩 수정하는 게 아니라 여러 파일을 동시에 분석 하고 수정하더군요. 제가 했으면 하루는 걸렸을 작업을 몇 분 만에 끝냈습니다.
3. 백테스트 재실행
상황: 모든 수정이 끝났습니다. 과연 제대로 작동할까?
결과:
에러: 0개
그래프: 우상향 ✅
실제 거래: 정상 실행
느낀 점: 한방에 우상향 그래프가 나왔을 때의 그 희열... 며칠 동안 하향 그래프만 보다가 처음으로 우상향을 보는 순간이었습니다.
막혔던 순간과 해결
문제: Git 브랜치 전환 과정에서 specs/014-ai-adaptive-system 폴더가 갑자기 사라졌습니다.
"야 왜 specs 폴더 안의 모든 데이터가 로컬에서 사라졌어?"
해결: Claude가 브랜치 개념을 설명해주고, cherry-pick으로 014와 015 브랜치를 병합해줬습니다. git 명령어를 직접 실행해서 문제를 해결했습니다.
git add .
git commit -m "feat(kakao-trading): 015 카카오톡 연동 테스트 완료"
git checkout 015-kakao-trading-integration
git cherry-pick [커밋해시]
Git 명령어를 몰라도 Claude가 알아서 해주니 편했습니다.
결과 (After)
Before vs After
항목
Before
After
백테스트 그래프
하향 곡선 (손실)
우상향 곡선 (수익)
에러 개수
수백 개 (130, 5004, 4108)
0개
실제 거래 실행
0건
정상 작동 (Trap/Trend/Range 엔진)
문제 해결 시간
며칠 (혼자 해결 불가)
몇 시간 (Claude와 협업)
결과물
✅ AI 적응형 트레이딩 시스템 (014) 정상 작동
마켓 레짐 감지 (TREND, RANGE, VOLATILE)
3개 엔진 시스템 (Trap, Trend, Range)
ATR 기반 동적 SL/TP
백테스트 에러 제로화
⚠️ 중요 공지: 이 결과는 시뮬레이션(백테스트) 단계입니다. 실전 투자는 아니며, 투자는 본인의 책임입니다.
이 과정에서 배운 AI 활용 팁
효과적이었던 것
명확하게 요청하기
❌ "에러 좀 봐줘"
✅ "문제 분석하고 개선하라"
구체적으로 뭘 원하는지 말하면 Claude가 더 정확하게 작업합니다.
에러 로그는 전체를 복사해서 붙여넣기
일부만 주지 말고 백테스트 로그 전체를 복사해서 붙여넣으세요.
Claude가 전체 맥락을 보 고 문제를 찾아냅니다.
모르는 건 바로 물어보기
"StopLevel이 뭐야?", "ATR이 뭐야?" 같은 질문도 OK
MQL4 공식 문서 읽는 것보다 빠릅니다.
이렇게 하면 안 돼요
에러 코드만 던지지 말 것
"Error 130이 뭐야?"보다는 "Error 130이 발생한 전체 로그"를 보여주세요.
코드 일부만 보여주지 말 것
Claude는 파일 전체를 읽고 분석할 수 있습니다. 관련 파일 경로를 알려주세요.
다른 업무에 적용한다면?
이 경험은 알고리즘 트레이딩 외에도 적용할 수 있습니다:
백엔드 API 에러 디버깅: 로그를 Claude에게 주고 "문제 분석하고 개선하라"
데이터 분석 스크립트 오류: Python/R 스크립트 에러를 Claude가 찾아서 수정
자동화 스크립트 개발: Git, 파일 처리 같은 반복 작업을 Claude가 스크립트로 만들어줌
핵심은 "명확한 요청 + 전체 맥락 제공"입니다.
앞으로의 계획
백테스트는 성공했지만 아직 실전 투자 단계는 아닙니다. 앞으로 이렇게 발전시킬 계획입니다:
다른 시간대 테스트: H4 외에 H1, D1 등 다양한 타임프레임 실험
우상향 극대화 로직 개선: 백테스트 결과를 보면서 수익률 높이는 파라미터 튜닝
다른 통화쌍 적용: ETHUSD 외에 EURUSD, GBPUSD 등으로 확장
실시간 데모 계좌 테스트: 백테스트 다음 단계로 데모 계좌에서 실시간 검증
Claude Code와 함께라면 각 단계의 문제도 빠르게 해결할 수 있을 거라 확신합니다.
재사용 가능한 프롬프트
프롬프트 1: 백테스트 에러 분석
MetaTrader 4 백테스트 로그입니다. 문제 분석하고 개선하라.
[백테스트 로그 전체 복사-붙여넣기]
[백테스트 로그 전체] 부분에 MT4 Strategy Tester의 Journal 탭 내용을 모두 복사해서 붙여넣으세요.
프롬프트 2: MQL4 에러 해결
MQL4 EA에서 [에러 코드] 에러가 발생합니다. 관련 파일: [파일 경로] 에러 발생 위치: [함수명 또는 라인]
원인을 찾고 코드를 수정해주세요.
[에러 코드]: 130, 5004, 4108 등
[파일 경로]: src/Lib/Engines/TrapEngine.mqh
[함수명 또는 라인]: PlaceBracketOrders() 함수
프롬프트 3: Git 브랜치 문제 해결
Git에서 브랜치를 전환했더니 [폴더명] 폴더가 사라졌습니다. 현재 브랜치: [브랜치명]
파일을 복구하고 두 브랜치의 내용을 합쳐주세요.
[폴더명]: specs/014-ai-adaptive-system
[브랜치명]: git branch 명령어로 확인
이 글이 도움되셨다면 트레이딩 커뮤니티에 공유해주세요! 같은 문제로 고민하는 분들에게 도움이 될 것입니 다. 💡
다시 한번 강조: 이 글의 백테스트 결과는 시뮬레이션이며, 실전 투자 결과를 보장하지 않습니다. 투자는 본인의 책임입니다.