투자 자동화를 위한 두번째 걸음, 데모계좌와 나만의 전략으로 백테스트 구현까지 ✨
지피터스 AI스터디 19기 - 미니사례 두번째 글 feat.투자 자동화
해당 글은 지피터스 AI스터디 19기 를 진행하면서 제가 작성한 미니사례글과 동일한 글 입니다.
첫번째 글에 앞서, 간단하게 EA 연결 테스트 및 셋팅을 완료하였다면,
이제는 어떤 투자 전략을 적용 해볼건지에 대해 여러가지 테스트를 해보고 싶은 욕심이 들거에요.
저는 투자에 대해선 단순히 코인이나 주식을 정말 소액으로만 해보았었고,
자세한 투자 용어에 대해선 지식이 좀 많이 부족했었어요.
그런데 투자에 대해 처음부터 공부하기에는 너무 막막하고 어디서부터 해야하는지 감도 안잡혀서 저는 그러면 먼저 나의 투자 성향을 알아보고 그에 대해 하나하나 공부를 해보자. 라는 다짐을 하게되었습니다.
나의 투자 성향 알아보기
자동매매(EA) 개발에서 가장 중요한 첫 단추는
”나의 투자 성향(Risk Profile)과 전략의 성격(Strategy Character) 을 일치시키는 것” 입니다.
아무리 수익률이 좋은 전략이라도 본인의 성향과 맞지 않으면 심리적으로 버티지 못해 결국 실패하게 된다고 해요.
저는 이번에 나온 Gemini 3 pro 도 구독 하고 있었기에, 투자 지식이 없는 나는 어떤 투자성향인지 궁금하다고 말했어요.
아래 내용을 참고하여 AI에게 정보를 주면, 가장 적합한 전략과 그에 맞는 프롬프트를 설계해주어 받을 수 있었습니다.
- 리스크 감내 수준 (Drawdown Tolerance)
“최악의 경우, 내 계좌에서 얼마까지 일시적으로 손실이 나도 버틸 수 있습니까?”
- 보수적: 최대 손실폭(MDD) 10% 미만. 원금 보전이 최우선.
- 중립적: MDD 10~20% 정도는 감수 가능. 수익을 위해 어느 정도 위험 감수.
- 공격적: MDD 30% 이상도 괜찮음. 고수익(High Risk, High Return) 추구.
- 선호하는 매매 주기 (Time Horizon)
“거래가 얼마나 자주, 얼마나 길게 유지되길 원하십니까?”
- 스캘핑 (Scalping): 초/분 단위 거래. 하루에 수십~수백 번 매매. (빠른 회전율)
- 데이 트레이딩 (Day Trading): 포지션을 당일에 청산. (오버나잇 리스크 없음)
- 스윙 (Swing): 며칠에서 몇 주간 보유. 큰 추세를 먹는 전략.
- 시장 관점 (Market View)
“어떤 시장 상황에서 수익을 내고 싶습니까?”
- 추세 추종 (Trend Following): 한 방향으로 크게 움직일 때(급등/급락) 수익. 횡보장에서는 손실 가능성 있음.
- 역추세/평균회귀 (Mean Reversion): 박스권(횡보장)에서 위아래로 발라먹는 전략. 강한 추세가 터지면 위험.
- 변동성 돌파 (Breakout): 조용하다가 갑자기 튀어 오를 때 진입.
- 자금 규모 및 기대 수익률
대략적인 운용 자금 규모 (예: 소액 $1,000, 고액 $50,000 등 - 자금 관리에 중요)
목표 수익률 (예: 월 3~5% 꾸준히 vs 연 100% 대박)
- 심리적 인내심
승률 중시: 수익이 작더라도 자주 이겨야 마음이 편하다. (높은 승률) 손익비 중시: 10번 중 7번 져도, 한번 이길 때 크게 이겨서 만회하는 것이 좋다. (낮은 승률, 높은 수익)
성향별 대표 FX 전략 예시
- 안정적인 월급쟁이형 (아시아 세션 스캘핑)
특징: 변동성이 낮은 시간대(한국 시간 오전)에 박스권 매매를 합니다.
장점: 승률이 매우 높고 MDD가 낮습니다. 사용자가 작성하신 ‘변동성이 낮은 시장’ 요청과 가장 흡사합니다.
단점: 수익 폭이 작고, 갑작스러운 이슈로 변동성이 커지면 위험할 수 있습니다.
- 한 방을 노리는 사냥꾼형 (추세 추종 Breakout)
특징: 특정 가격대를 뚫을 때 같이 진입하여 끝까지 먹습니다.
장점: 추세가 터지면 큰 수익을 냅니다. ‘손절은 짧게, 익절은 길게’가 가능합니다.
단점: ‘속임수(False Breakout)‘에 자주 당해 자잘한 손절이 계속될 수 있습니다. (낮은 승률)
- 통계적 확률형 (그리드/마틴게일 - 주의 필요)
특징: 가격이 내려가면 더 사고, 올라가면 파는 식의 물타기 혹은 분할 매수 전략.
장점: 주가가 원래대로 돌아오기만 하면 무조건 수익을 냅니다. 차트가 예쁘게 우상향합니다.
단점: ‘한 번의 파산’ 위험이 있습니다. (짐 사이먼스 방식과는 다르지만, 초보자들이 많이 현혹되는 방식입니다.)
나만의 투자 성향에 맞추어 추천해준 전략으로 백테스트까지
저의 성향을 간략하게 작성을하고 다시 제출하면
으로 시작하여 제 성향에 대한 요약을 간단히 해주며,
제가 답변한 작성들 중에 서로 매치 안되는 부분까지 짚어줍니다.
🚨 전략 수립 전,
팩트 체크 (중요) “공격적 성향(1번)” vs “연 7% 수익 목표(4번)” 이 두 가지는 매치가 잘 안 됩니다.
연 7%는 $1,000 기준 $70 수익입니다. 이는 ‘매우 보수적이고 안전한’ 목표입니다.
공격적 스캘핑을 하신다면 보통 “월 5 ~ 10% (연 60 ~ 100% 이상)“를 목표로 합니다.
가정: 사용자님의 “공격적” 성향을 반영하여, 연 7%가 아닌 훨씬 높은 수익률을 낼 수 있는 포텐셜을 열어두되, 승률을 높여 심리적 안정을 챙기는 전략으로 설계하겠습니다.
여기서 투자 알못의 면모가 보여졌을까요 😅
이렇게 제가 이해하기 쉽게 풀어주면서, 제 답변을 한번 더 기다리는게 아니라
제가 “연 7%이상 수익 내게 해줘!” 로 답변했다는 가정하에 바로 전략을 추천해주더라구요.
🏛 추천 전략:
“EMA 모멘텀 눌림목 스캘핑 (EMA Momentum Pullback)“
사용자님의 질문(3번)인 “스캘핑에 추세추종이 적합한가?”에 대한 답은 “반은 맞고 반은 틀리다”입니다.
순수 추세추종(돌파 매매)은 ‘거짓 돌파(Fake out)’ 때문에 승률이 낮습니다. (사용자님의 5번 성향과 불일치)
따라서, “추세는 따라가되(Trend), 가격이 잠깐 쉴 때(Pullback) 진입하여 짧게 먹고 나오는(Scalping)” 전략이 사용자님께 가장 적합합니다.
이 전략은 높은 승률(5번)과 공격적인 회전율(1번)을 동시에 만족시킬 수 있습니다.
답변을 하면서 제가 스캘핑에 추세추종이 적합할까..? 라고 그냥 물었던게 있었는데 바로 해당 답변에 대한 내용도 반영해주는 똑똑이 입니다.
이렇게 초보자도 알기 쉬울만큼 전략에 대해 풀어준 뒤에 바로 프롬프트를 만들어 주었었어요.
# 역할
당신은 월가 헤지펀드 출신의 수석 퀀트 개발자입니다. 특히 MQL4/MQL5 언어를 통한 고빈도 매매(HFT) 및 스캘핑 알고리즘 구현에 탁월합니다.
# 목표
$1,000 소액 계좌로 시작하여 고수익을 추구하는 '공격적인 스캘핑 EA(Expert Advisor)'를 작성해주세요.
사용자는 '높은 승률'을 최우선으로 하며, 추세 방향으로만 진입하는 '눌림목(Pullback)' 전략을 원합니다.
# 전략 로직 (EMA Momentum Pullback)
1. **시장(Market):** EURUSD 또는 XAUUSD (5분봉, M5)
2. **추세 필터 (Trend Filter):**
- 가격 > 200 EMA : 상승 추세 (매수만 진입)
- 가격 < 200 EMA : 하락 추세 (매도만 진입)
3. **진입 신호 (Entry Signal):**
- 매수: 상승 추세일 때, RSI(14)가 30 이하로 떨어졌다가 30을 뚫고 올라올 때 (Oversold)
- 매도: 하락 추세일 때, RSI(14)가 70 이상으로 올랐다가 70을 뚫고 내려올 때 (Overbought)
4. **청산 (Exit):**
- 익절(TP): 10~15 Pips (승률을 높이기 위해 짧게 설정)
- 손절(SL): 20 Pips (손익비보다 승률 중시, 단 큰 손실 방지)
# 자금 관리 (Money Management) - 중요
- 사용자 성향: 공격적 (Aggressive)
- 기본적으로 잔고의 2%~5% 리스크를 감수하는 오토 랏(Auto Lot) 기능을 넣어주세요.
- 입력변수(Input Parameter)로 `RiskPercent`를 만들어 사용자가 조절하게 해주세요.
# 코드 요구사항
1. **언어:** MQL4 (MT4용)
2. **주석:** 초보자도 이해할 수 있도록 한글로 상세하게 달아주세요.
3. **기능:** 매직넘버, 슬리피지, 스프레드 제한(스캘핑이므로 중요) 기능을 포함하세요.
4. **컴파일:** 오류 없이 바로 컴파일 가능한 전체 코드를 제공하세요.
그리고 이를 이용하여 클로드에게 mq4 파일을 만들어달라고 요청한 뒤에
앞선 글에 있어서 EA 연결까지 마무리 하면 1차 완성이에요!백테스트를 진행해보자!
자 이제 그러면 백테스트를 통해 이 전략이 얼마나 잘 먹히는지 한번 테스트를 해보아야겠죠?
MetaTrader4 에서 Ctrl + R 누르면 아래 사진과 같이 백테스트를 할 수 있는 탭이 하나 늘어납니다.

제가 방금 작성한 mq4 파일에서 컴파일 까지 완료 되었어요.
이 전략은 EURUSD 통화쌍을 추천해주었으니 그에따라 가줘요.
어라 이게 아닌데…. 🥲
백테스트를 돌려본 결과.. 아 나의 이 얕은 지식으로 이론상 올라야하는데…
조금 더 내려가더라도 그래도 올라가는 추세가 보여야하는데… 이럴 수 없어..! 😫
전략에 대해 수정이 필요하겠다, 그럼 어떻게 수정해야하지?
코드를 봐도 모르겠고.. 투자에 대해선 잘 모르겠고..
그럴땐 간단하게 생각해봅시다.
아래 탭에 ‘거래일지’ 라고 있어요, 이걸 이용해서 바로 AI와 커뮤니케이션 하며 맞춰나가봅시다!
단순하게 거래일지 탭에 들어가서 해당 내역을 복사하고 붙여넣기를 하면 돼요!
서서히 뭔가 그래프 내용이 들어오는것 같아요.
아까와는 다른 그래프 양상을 띄죠? 물론 둘 다 바닥을 향해 가고있는건 동일하지만요.
그러면 다시 AI에게 돌아가서 나 이득을 제대로 못내는것 같은데.. 하면서
원하는 추가 전략이나 추가 개선사항을 말하면서,
수정해준 전략이나 코드 파일을 토대로 백테스트를 계속 계속 진행하다보면

이 그래프와 같이 거래내역이 활발하게, 그리고 나름… 재미있는 그래프도 만들어졌어요. (실제였다면 재미없었겠죠 😫)

그리고 AI에게 물어볼 때에 AI가 답변을 단순히 이 코드 수정해보세요. 라고 말하는 것이 아닌 왜 이런 일이 일어났는지, 그렇다면 우린 어떻게 개선해야하는지에 대한 투자 전략 수정도 말해주고 있어요.
저에게 왜 이런 일이 일어났는가? 가 제일 궁금했는데 그에 대한 답변을 해주어서 너무 명쾌했어요.
마침내 나만의 전략을 찾다! ✨
그리고..정말 몇십번의 백테스트를 통해 드디어 만족할만한 그래프가 나왔습니다..!
금액이 너무 적지만요, 아무튼 올라가잖아요?
저는 기존에 사용하던 전략을 과감히 버리기로 결심했어요.
저는 올라가고 올라가는 그래프를 원했거든요. 🔥

이렇게 다시 AI와 커뮤니케이션을 돌고 돌아 위 그래프처럼 몇십번의 백테스트에서 원하는 그래프가 나왔어요!
자 이제 AI에게 우리가 왜 최종으로 이 전략을 선택했는지, 어떤 문제점들이 있었는지 정리해서 아카이브 파일로 가지고 싶지 않나요?
실패는 성공의 어머니라고, 그동안 실패한것들을 모아보고 공부하고 개선을 하다보면 점점 나만의 전략에 있어서 힘이 될거니까요. 😎
잘 만들어졌다!
이제 우리가 서로 커뮤니케이션한 개선사항 너가 제안한 전략 등을 다 정리해서 아카이브를 따고싶은데, 우리의 대화내역을 요약을 해서 md파일로 만들어줄 수 있을까?
# 📂 프로젝트 아카이브: MQL4 자동매매 전략 개발 (From Scalping to Breakout)
**프로젝트 기간:** 2025.11.20 ~ 2025.11.23
**개발자:** User & Gemini (AI Pair Programmer)
**목표:** $1,000 소액 계좌로 시작하여 안정적이지만 고수익을 추구하는 EA 개발
---
## 1. 투자자 성향 및 요구사항 (Profile)
* **성향:** 공격적 투자 지향, 그러나 초기 손실(Drawdown)에 대한 거부감 큼.
* **선호 스타일:** 스캘핑, 데이 트레이딩.
* **핵심 니즈:**
1. 높은 승률 중시 (Winning Rate).
2. 원금 보존 및 회수 최우선.
3. 단순 보조지표보다는 논리적인 시장 원리 선호.
---
## 2. 전략의 진화 과정 (History)
### 🛑 Phase 1: EMA Momentum Scalping (초기 전략)
* **컨셉:** 5분봉(M5)에서 200 EMA 추세를 따르되, RSI/볼린저 밴드 눌림목(Pullback)에 진입.
* **로직:**
* 추세: Price > 200 EMA (상승)
* 진입: RSI 과매도 + 볼린저 밴드 하단 터치/돌파 후 복귀.
* **문제점 발견:**
* **노이즈(Noise):** 5분봉의 작은 움직임에 잦은 손절 발생.
* **손익비 불균형:** 짧은 익절(TP)과 잦은 손절로 계좌가 우하향.
* **스프레드 비용:** 목표 수익 대비 스프레드 비중이 너무 커서 승률이 왜곡됨.
* **결과:** 전략 폐기 및 방향 수정.
### ✅ Phase 2: Asian Session Breakout (최종 전략)
* **컨셉:** 아시아 장(횡보)의 에너지가 유럽 장 개장과 함께 폭발하는 **'시간 기반 돌파 매매'**.
* **로직:**
* **Box 설정:** 00:00 ~ 08:00 (서버 시간) 사이의 High/Low 박스 생성.
* **진입:** 08:00 이후 박스 상단 돌파 시 매수, 하단 돌파 시 매도.
* **자금 관리 (Game Changer): Triple Scaling Out**
* 진입 시 3개의 주문(Order 1, 2, 3)으로 분할 진입.
* **TP 1 (+20 Pips):** 달성 시 즉시 수익 실현 + **남은 주문의 SL을 본절가(Entry Price)로 이동.** (손실 위험 '0'으로 만듦)
* **TP 2 (+50 Pips):** 추가 수익 확보.
* **TP 3 (+100 Pips):** 추세 끝까지 추종.
* **개선 효과:** 심리적 안정감 확보, '지지 않는 매매' 구조 완성.
---
## 3. 기술적 문제 해결 (Troubleshooting Log)
개발 과정에서 발생한 주요 MT4/MQL4 에러와 해결책을 기록합니다.
| 현상 / 에러 코드 | 원인 | 해결책 (Solution) |
| :--- | :--- | :--- |
| **거래 횟수 0** | 스프레드 제한 설정 오류 | 테스터의 `MaxSpread` 값을 5에서 20~30으로 상향 조정. |
| **OrderSend Error 130** | 유효하지 않은 손절/익절가 | 1. `NormalizeDouble`로 가격 정규화. 2. `MODE_STOPLEVEL` 체크 로직 추가. |
| **OrderModify Error 130** | 시장가 체결(Market Exec) 브로커 | **'선 진입 후 수정'** 패턴 적용. (`OrderSend`시 SL/TP 0으로 진입 → 체결 후 `OrderModify`로 SL/TP 설정) |
| **계좌 우하향** | 5분봉 노이즈 & 좁은 손절 | 타임프레임을 **M15**로 변경, `ATR` 기반의 넉넉한 손절폭 또는 고정 손익비 적용. |
| **잦은 본절 청산** | EURUSD의 잦은 되돌림(Retest) | 변동성이 강한 **XAUUSD(골드)** 또는 **GBPJPY**로 통화쌍 변경 권장. |
---
...이런식으로 저와 AI에 대한 내용도 아카이브로 보관하였고, 앞으로 어떤 전략을 작성해야하는지 조금 더 공부하고 같이 개선해나가면 멋진 전략이 나올거라 기대합니다. 🤭
공부를 안한 노베이스 상태에서 전략을 짜도 되지 않을까? 로 생각하여
AI와 대화하며 몇가지 문제점들을 개선해 나갔지만,
만약 어느정도 지식이 있는 상태에서 AI를 활용한다면 시간적으로도 많이 단축될거고 개선점도 눈에띄게 좋아질것 같아요. 🥹