*목표:** MT4(MetaTrader 4) 기반의 Leader-Follower 카피트레이딩 시스템 구축
카피트레이딩은 전문 트레이더(Leader)의 거래를 실시간으로 따라하는(Follower) 방식의 자동매매를 통해 실제 거래를 모니터링 하는 대시보드 구축 사례
**핵심 요구사항:**
- Leader MT4에서 매수/매도 시 Follower MT4에 실시간 복사
- ngrok을 통한 HTTPS 터널링 (MT4 WebRequest 요구사항)
- 실시간 모니터링 대시보드
- 주요 경제 이벤트(FOMC, CPI, NFP) 알림
- 다중 계좌 관리
---
## 진행 방법
### 어떤 도구를 사용했고, 어떻게 활용하셨나요?
**사용 도구:**
- **Claude (Cursor IDE)**: 전체 시스템 설계 및 코드 작성
- **Python + FastAPI**: 중계 서버 개발
- **MQL4**: MT4 Expert Advisor 개발
- **ngrok**: HTTPS 터널링
- **HTML/CSS/JS**: 대시보드 UI
---
### 주요 프롬프트 및 결과
#### 1. Copy Trading 시스템 디버깅
```
브로커 서버 ngrok으로 실행시켜줘 leader follower 동작 확인하게
```
이 프롬프트로 시작해서, 422 오류, Error 5203 등 다양한 문제를 해결했습니다.
#### 2. JSON 파싱 버그 수정
```
수정해도 똑같은데
DEBUG: instructionsJson length = 12439
DEBUG: Total 0 instructions parsed
```
**문제:** `FindArrayEnd` / `FindObjectEnd` 함수의 depth 로직 오류
**해결:** depth 체크 순서 수정 및 초기값 조정
```mql4
// 수정 전 (버그)
int FindArrayEnd(string json, int start) {
int depth = 0;
// ...
if(depth == 0) return i; // depth-- 전에 체크
depth--;
}
// 수정 후 (정상)
int FindArrayEnd(string json, int start) {
int depth = 1; // '[' 다음 위치에서 시작하므로
// ...
depth--;
if(depth == 0) return i; // depth-- 후에 체크
}
```
#### 3. 중복 체크 로직 개선
```
적용 했는데 지금도 로그가 너무 많이 보이네
Skipping: Recent position exists within 5s
```
**문제:** 수동 포지션까지 SkipSeconds 체크에 걸림
**해결:** "COPY|" 코멘트가 있는 복사된 포지션만 체크하도록 수정
```mql4
// 시간차 스킵 - "COPY|" 포지션에만 적용 (수동 포지션 무시)
if(StringFind(OrderComment(), "COPY|") >= 0) {
if(TimeCurrent() - OrderOpenTime() < SkipSeconds)
return true;
}
```
#### 4. 대시보드 개발
```
대시보드에 알림 및 모니터링으로 주요이벤트도 보여주고
leader follower간 실시간 로그메시지도 보여주고
다중 계좌 관리까지 만들어줘
```
이 프롬프트 하나로 전체 대시보드 UI와 API가 생성되었습니다.
거래 대시보드의 스크린샷
거래 플랫폼의 대시보드
#### 5. 경제 이벤트 상세 정보
```
주요 경제 이벤트는 정보가 없네 정보를 간단하게 요약하고 근거 링크를 보여줘
```
**결과:** FOMC, CPI, NFP 등 각 이벤트에 대한 요약, 트레이딩 팁, Forex Factory/Investing.com 링크 추가
---
한국어 텍스트가 있는 화면
### 시스템 아키텍처
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Leader MT4 │────▶│ Server │◀────│ Follower MT4│
│ (EA) │ │ (FastAPI) │ │ (EA) │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
┌─────▼─────┐
│ ngrok │
│ (HTTPS) │
└───────────┘
```
---
### 대시보드 주요 기능
| 기능 | 설명 |
|------|------|
| 실시간 상태 | Leader/Follower 잔고, 포지션 수 |
| 실시간 로그 | 통신 로그 (3초 갱신) |
| 경제 이벤트 | FOMC, CPI, NFP 등 + 링크 |
| 다중 계좌 관리 | 모든 계좌 정보 한눈에 |
| Backtest Report | 성과 리포트 생성 |
---
## 결과와 배운 점
### 배운 점과 나만의 꿀팁
1. **MQL4 JSON 파싱은 까다롭다**
- MQL4에는 JSON 라이브러리가 없어서 직접 파서를 만들어야 함
- 중첩된 객체(`constraints: {...}`)가 있으면 depth 관리 필수
2. **MT4 WebRequest는 HTTPS만 지원**
- localhost는 안 됨, 반드시 ngrok 같은 터널링 필요
- URL 허용 목록에 추가 후 **MT4 완전 재시작** 필수
3. **Claude는 디버깅에 강하다**
- "로그가 너무 많아" 같은 모호한 피드백도 잘 이해함
- 스크린샷을 보여주면 문제를 정확히 파악함
### 과정 중에 어떤 시행착오를 겪었나요?
| 문제 | 원인 | 해결 |
|------|------|------|
| 422 Unprocessable Content | 서버 미들웨어가 request body 소모 | 미들웨어 제거 + JSON 정리 로직 추가 |
| Total 0 instructions parsed | FindArrayEnd/FindObjectEnd depth 버그 | depth 체크 순서 및 초기값 수정 |
| 모든 주문 Skipping | 수동 포지션까지 SkipSeconds 체크 | COPY| 포지션만 체크하도록 수정 |
| Error 5203 | ServerUrl에 /leader/event 누락 | EA 파라미터 수정 |
### 도움이 필요한 부분이 있나요?
- **실시간 경제 캘린더 API 연동**: 현재는 정적 데이터, Forex Factory API 연동 고려 중
- **MT5 지원**: MQL5로 포팅 필요
### 앞으로의 계획이 있다면 들려주세요.
1. **실시간 경제 캘린더 연동** - Forex Factory 스크래핑 또는 API
2. **텔레그램 알림** - 주요 이벤트 전 알림 발송
3. **다중 Follower 지원** - 현재 B1만 지원, B2, B3... 확장
4. **성과 리포트 PDF 자동 생성** - 주간/월간 리포트 이메일 발송
---
## 도움 받은 글 (옵션)
### 참고한 지피터스 글이나 외부 사례
- **MQL4 Reference**: https://docs.mql4.com/
- **FastAPI Documentation**: https://fastapi.tiangolo.com/
- **ngrok Documentation**: https://ngrok.com/docs
- **Forex Factory Calendar**: https://www.forexfactory.com/calendar
- **Investing.com Economic Calendar**: https://www.investing.com/economic-calendar/
---
## 최종 결과물
### Git 커밋 히스토리
```
0dd7505 docs: README.md 추가 - 서버, ngrok, 대시보드 실행 방법
50f5d4e feat: Follower 계좌번호 표시 기능 추가
fbbf2c6 feat: 경제 이벤트 상세 정보 및 근거 링크 추가
fb69d4d feat: Copy Trading Dashboard 추가 - 실시간 모니터링
e528cec feat: Copy Trading 성공 - JSON 파싱 버그 수정
```
### 프로젝트 구조
```
leader_follower_server/
├── server/
│ ├── app.py # FastAPI 메인 (21KB)
│ ├── models.py # Pydantic 모델
│ ├── state.py # 상태 관리
│ └── static/
│ └── dashboard.html # 대시보드 UI
├── LeaderSignalEA.mq4 # Leader EA
├── FollowerCopyEA.mq4 # Follower EA
├── README.md # 실행 가이드
└── Gpters.md # 이 문서
```
### 핵심 성과
✅ **42개 이상 주문 복사 성공**
✅ **실시간 대시보드 완성**
✅ **경제 이벤트 알림 + 링크**
✅ **다중 계좌 관리**
---