MT4 설치부터 첫 EA 가동까지

1주차 사례 게시글

제목

MT4 설치부터 첫 EA 가동까지 — 아무것도 몰라도 시작할 수 있다 🚀

소개

자동투자 구조가 궁금해서 참가한 1주차 실습에서 저는 MetaTrader 4(MT4)를 설치하고, Claude Code와 Genspark 채팅의 도움으로 첫 번째 EA(Expert Advisor)를 직접 만들어 가동해봤습니다. 오프라인 수업에서 친절한 안내를 받아 설치 과정에서 큰 어려움 없이 진행할 수 있었어요.

진행 방법

  • 사용 도구: MetaTrader 4, Claude Code, Genspark(채팅 기반 지원), 텍스트 에디터(메모장/VS Code)

  • 설치 및 초기 설정 (요약)

    1. 브로커 또는 MetaQuotes의 공식/신뢰 가능한 페이지에서 MT4 설치 파일을 다운로드했습니다. (설치 파일 출처는 항상 공식 또는 브로커 제공 링크를 사용하세요.)

    2. 설치 마법사 안내에 따라 프로그램을 설치하고, 프로그램 실행 후 제공받은 데모 계정으로 로그인했습니다.

    3. Experts 폴더 위치를 확인한 뒤, 테스트용 EA 파일을 넣어 정상적으로 로드되는지 체크했습니다.

    • : Windows의 관리자 권한, 방화벽/안티바이러스 예외 설정, 그리고 충분한 디스크 여유 공간(차트/로그용)을 확인하면 설치 오류를 줄일 수 있어요.

  • EA(간단한 전략) 만들기

    • 목표: 이동평균 교차(MA crossover)를 이용해 간단한 매수/매도 EA를 만드는 것이었습니다.

    • Claude Code와 Genspark 채팅을 활용해 코드 스켈레톤을 만들고, 제가 원하는 조건(단기 MA 교차시 진입, 고정 손절/이익 설정)을 전달했습니다.

    • 사용한 프롬프트(예시, Genspark/Claude Code에 입력한 문장)

    "MT4용 MQL4로 간단한 EA를 만들어줘. 규칙은: 1) 단기 10 EMA가 장기 50 EMA를 상향 돌파하면 매수, 2) 반대의 경우 매도, 3) 고정 손절 30 pips, 이익 목표 60 pips, 4) 한 번에 포지션은 1개만 허용. 주석으로 각 블록 설명해줘."
    
    • EA 코드 스켈레톤 (요약)

    //+------------------------------------------------------------------+
    //| Simple MA Crossover EA                                           |
    //+------------------------------------------------------------------+
    input int FastMA = 10;
    input int SlowMA = 50;
    input double LotSize = 0.01;
    input int TP = 60; // pips
    input int SL = 30; // pips
    
    void OnTick(){
      double fast = iMA(NULL,0,FastMA,0,MODE_EMA,PRICE_CLOSE,1);
      double slow = iMA(NULL,0,SlowMA,0,MODE_EMA,PRICE_CLOSE,1);
      double prevFast = iMA(NULL,0,FastMA,0,MODE_EMA,PRICE_CLOSE,2);
      double prevSlow = iMA(NULL,0,SlowMA,0,MODE_EMA,PRICE_CLOSE,2);
    
      if(prevFast <= prevSlow && fast > slow){
        // 매수 진입 로직 (포지션 중복 방지 포함)
      }
      if(prevFast >= prevSlow && fast < slow){
        // 매도 진입 로직
      }
    }
    
    • 오류 대응 과정:

      • 코드 초안에서 컴파일 오류가 났을 때, Genspark 채팅의 답변을 확인하고 해당 라인만 복사해서 붙여넣기 방식으로 수정했습니다.

      • 총 두 번의 수정 시도로 EA가 컴파일되어 정상적으로 차트에서 동작하는 것을 확인했어요.

  • 테스트:

    • 데모 계정에서 수동/시뮬레이션으로 EA를 Attach하고 주문이 의도대로 생성되는지 확인했습니다.

    • 간단한 로그 출력(거래 진입/청산 시 로그)을 넣어 동작을 추적했습니다.

결과와 배운 점

  • 주요 성과:

    • MT4 설치와 EA 파일 배치, 실전 가동까지 직접 경험했습니다.

    • Claude Code/Genspark를 통해 짧은 반복으로 오류를 잡아 EA를 완성할 수 있었습니다.

  • 배운 점 (직관적 요약)

    • 아무것도 몰라도 '시작'하면 생각보다 빠르게 결과를 볼 수 있다.

    • AI 도구는 "초안 생성 + 오류 수정 가이드" 역할에 매우 유용하다. 직접 한 줄씩 적용해 보니 안정적으로 작동했습니다.

    • 실전 운영 전에는 데모 계정에서 충분히 테스트하고, 로그를 통해 거래 흐름을 확인하는 습관이 중요합니다.

  • 실수와 개선 포인트

    • 초반에 파일 경로를 잘못 넣어 EA가 로드되지 않았던 실수 → Experts 폴더 위치 재확인으로 해결

    • 손절/이익 계산에서 pips → 실제 가격 단위 변환 실수 → 테스트 단계에서 값 확인 후 수정

앞으로의 계획

  • 다음 주차(2주차) 과제: 나만의 간단한 EA 전략 기획 및 구현(현재 스켈레톤을 기반으로 개선)

  • 추가 예정: 백테스트 환경에서 성능 측정, 간단한 리스크 관리(트레일링 스탑/포지션 사이징) 적용

실전 팁(초보자를 위한 빠른 체크리스트)

  • MT4 설치는 공식 출처 또는 신뢰 가능한 브로커에서 설치 파일을 받으세요.

  • EA는 먼저 데모 계정에서 충분히 검증하세요.

  • 코드 수정 시 작은 단위(라인/함수)를 붙여넣어 테스트하면 원인 파악이 빨라집니다.

프롬프트와 코드

  • 사용한 프롬프트(예시)

"MT4용 MQL4로 간단한 EA를 만들어줘. 규칙은: 1) 단기 10 EMA가 장기 50 EMA를 상향 돌파하면 매수, 2) 반대의 경우 매도, 3) 고정 손절 30 pips, 이익 목표 60 pips, 4) 한 번에 포지션은 1개만 허용. 주석으로 각 블록 설명해줘."
  • 코드(중요 블록 발췌)

// 포지션 중복 방지 예시
bool HasOpenPosition(){
  for(int i=0;i<OrdersTotal();i++){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==12345) return true;
    }
  }
  return false;
}

도움 받은 글 (참고용)

  • 주현영님 게시글


2
2개의 답글

뉴스레터 무료 구독