카피트레이딩·EA 사용 가이드

1. 카피 트레이딩 EA 다운로드

  1. 사이트에 로그인합니다.
  2. 상단 메뉴에서 다운로드를 클릭하거나, 카피트레이딩 페이지의 "버전별 다운로드 보기" 링크를 이용해 다운로드 페이지로 이동합니다.
  3. MT4/MT5 플랫폼이 없다면 해당 섹션에서 MT4·MT5 설치 링크를 통해 먼저 MetaTrader를 설치합니다.
  4. 카피 트레이딩용 EA 파일 다운로드 표에서 용도(마스터/카피어)와 플랫폼(MT4/MT5)에 맞는 파일을 선택합니다. (자동매매 임대·판매용 EA는 별도 상품 구매 후 결제내역에서 다운로드합니다.)
    • 마스터 EA: 본인 계좌의 매매를 서버로 전송할 때 사용 — Master_MT4.ex4(MT4용), Master_MT5.ex5(MT5용)
    • 카피어 EA: 마스터의 신호를 받아 본인 계좌에 주문을 넣을 때 사용 — Copier_MT4.ex4(MT4용), Copier_MT5.ex5(MT5용)
  5. 다운로드 전 안내 문구와 이용약관이 표시됩니다. [예]를 누르면 해당 ex4/ex5 파일이 다운로드됩니다.

2. 설치 방법

2.1 EA 파일 복사

MetaTrader 메뉴 파일 → 데이터 폴더 열기를 누르면 해당 MT에서 사용하는 데이터 폴더가 열립니다. 그 안에서 플랫폼별 Experts 폴더로 복사합니다.

  • MT4: 데이터 폴더가 열리면 MQL4 폴더를 연 뒤 Experts 폴더에 다운로드한 ex4 파일을 복사합니다.
  • MT5: 데이터 폴더가 열리면 MQL5 폴더를 연 뒤 Experts 폴더에 다운로드한 ex5 파일을 복사합니다.
  • 메타에디터에서 컴파일된 ex4/ex5가 이미 있다면, 해당 파일만 위 Experts 폴더로 복사해도 됩니다.

2.2 WebRequest URL 허용 (필수)

EA가 서버 통신·텔레그램 통보를 하려면 MetaTrader에서 WebRequest URL 허용이 필요합니다.

  • MT4: 메뉴 도구 → 옵션 → Expert Advisors 탭에서 "WebRequest URL 목록에 다음 주소 허용"란에 아래 2개를 추가합니다.
    • https://copytrade.co.kr (사이트 API 통신)
    • https://api.telegram.org (텔레그램 메시지 발송)
  • MT5: 메뉴 도구 → 옵션 → Expert Advisors에서도 동일하게 위 2개 URL을 추가합니다.

이 설정을 하지 않으면 EA 초기화 시 "WebRequest 오류"가 발생하며 인증·신호 수신 또는 텔레그램 알림이 동작하지 않습니다.

2.3 EA 부착 및 자동매매 허용

  • 차트를 연 뒤 네비게이터 → Expert Advisors에서 해당 EA를 차트에 드래그하여 붙입니다.
  • 차트 상단에 "자동매매" 버튼이 있어야 EA가 동작합니다. 비활성화 상태면 클릭하여 활성화합니다.

3. 마스터 EA 옵션 사용법

마스터 EA(Master_MT4 / Master_MT5)는 본인 계좌의 진입·청산을 서버로 전송합니다. 슬롯관리에서 발급받은 슬롯 IDAPI 시크릿 키를 입력해야 합니다.

입력 항목설명
copytradeID카피트레이드 슬롯 ID (예: USER_001). 슬롯관리에서 확인.
secretKeyAPI 시크릿 키. 슬롯관리에서 복사하여 붙여넣기.
SendMode전송 범위: 전체 심볼(SEND_ALL_SYMBOLS) 또는 현재 차트만(SEND_ONLY_CURRENT_CHART).
MagicFilter전송 필터: 전체(MAGIC_ALL), 수동만(MAGIC_MANUAL), EA만(MAGIC_EA).
BalanceSendIntervalSec (MT5)잔고 전송 주기(초). 기본 600(10분).
DebugSendData (MT5)인증 실패 시 Experts 탭에서 전송 데이터·응답 확인용. true 권장.

4. 카피어 EA 옵션 사용법

카피어 EA(Copier_MT4 / Copier_MT5)는 마스터 계좌의 신호를 받아 본인 계좌에 주문을 냅니다. 슬롯 ID, API 인증키, 마스터 계좌번호를 반드시 입력하고, 마스터가 MT4인지 MT5인지에 맞춰 마스터 플랫폼을 선택해야 합니다.

4.1 접속·인증 설정

입력 항목설명
CopytradeID / copytradeID슬롯 ID (카피어 슬롯). 슬롯관리에서 확인.
SecretKey / secretKeyAPI 인증키. 슬롯관리에서 복사.
MasterAccount / MasterAccount카피할 마스터의 계좌번호. 쇼룸에서 확인한 계좌번호를 정확히 입력.
MasterPlatform마스터 플랫폼: MASTER_MT4 또는 MASTER_MT5. 실제 마스터 계좌가 MT4/MT5 중 어디인지와 일치해야 신호 수신됨.

4.2 거래·랏수 설정

입력 항목설명
LotMultiplier랏수 배수. 1.0=동일 랏, 0.5=마스터의 절반 랏으로 진입.
MaxLot최대 랏수 제한. 계좌 안전을 위해 상한 설정 권장.
MaxSlippage허용 슬리피지(포인트). MT4는 0 입력 시 제한 없음.

4.3 카피 모드 설정

입력 항목설명
StartMode카피 시작 모드: 신규 신호부터(START_PURE_NEW 권장), 즉시(START_IMMEDIATE), 따라잡기(START_CATCH_UP).
PriceProtect유리한 가격만 진입(PRICE_BETTER_ONLY) 또는 제한 없음(PRICE_ANY). 서버 설정 사용 시 UseServerCopyMode가 우선.
UseServerCopyModetrue면 마스터 슬롯의 서버 설정을 따름(슬롯 DB 기본은 결합형, 선택 시 개별형·유리한 경우만 진입). false면 위 PriceProtect 등 EA 입력값 사용.

4.4 리스크 관리 (프랍펌·마틴게일 방어)

입력 항목설명
DailyDDSkipPercent일일 손실 한도(%). 이 비율만큼 당일 손실이 나면 신규 진입을 중단하고 기존 포지션 청산. 프랍펌 방어용.
MinBalanceProtect최저 잔고 보호. 0이면 미사용. 금액을 넣으면 해당 금액 이하로 떨어질 때 포지션 청산 후 카피 중단.
DebugLog (MT4)true 시 Experts 탭에 수신·처리 로그 출력.
ShowReceivedData (MT5)수신 신호 JSON 로그 출력. 원인 확인 후 false로 끄기 가능.

5. 프랍펌·마틴게일 방어 요약

카피어 EA의 일일 손실 한도(DailyDDSkipPercent)최저 잔고 보호(MinBalanceProtect)를 설정하면, 당일 손실이 일정 %를 넘거나 잔고가 지정 금액 이하로 떨어질 때 자동으로 포지션이 청산되고 신규 진입이 막혀 자산을 보호할 수 있습니다. 슬롯관리에서 마스터가 설정한 거래 카피 모드(DB·신규 슬롯 기본은 결합형, 필요 시 개별형) 및 유리한 가격만 진입(개별형일 때)은 카피어 EA가 UseServerCopyMode=true일 때 자동으로 따릅니다.

6. 텔레그램 WebRequest + 긴급상황 통보 기능 추가

아래 방식으로 EA에 텔레그램 통보 함수를 추가하면, 긴급상황(일일 손실 초과, 보호청산, 인증 실패, 연결 끊김 등)에서 즉시 메시지를 받을 수 있습니다.

6.1 준비

  1. 텔레그램에서 @BotFather로 봇을 생성하고 Bot Token을 발급받습니다.
  2. @userinfobot에서 본인 Chat ID(숫자)를 확인합니다.
  3. MetaTrader WebRequest 허용 목록에 https://api.telegram.org를 추가합니다.
  4. EA 입력값에 UseTelegramAlert=true, TelegramBotToken, TelegramChatId를 넣습니다.

6.2 MQL4 예시 (긴급상황 통보 함수)

// [작업내용] 긴급상황 텔레그램 통보(MQL4)
extern bool   UseTelegramAlert = false;
extern string TelegramBotToken = "";
extern string TelegramChatId   = "";

void SendTelegramEmergency(string title, string detail)
{
   if(!UseTelegramAlert) return;
   if(StringLen(TelegramBotToken) == 0 || StringLen(TelegramChatId) == 0) return;

   string base = "https://api.telegram.org/bot" + TelegramBotToken + "/sendMessage";
   string text = "[긴급] " + title + "\n계좌: " + IntegerToString(AccountNumber()) + "\n" + detail;
   string post = "chat_id=" + TelegramChatId + "&text=" + UrlEncode(text);

   char data[];
   StringToCharArray(post, data, 0, WHOLE_ARRAY, CP_UTF8);
   char result[];
   string headers = "Content-Type: application/x-www-form-urlencoded\r\n";
   int timeout = 5000;
   string resp_headers = "";
   int code = WebRequest("POST", base, headers, timeout, data, result, resp_headers);
   if(code == -1)
      Print("Telegram WebRequest fail: ", GetLastError());
}

// 사용 예: 일일 손실 초과 시
// SendTelegramEmergency("일일 손실 한도 초과", "신규 진입 중단 및 포지션 정리 실행");

6.3 MQL5 예시 (긴급상황 통보 함수)

// [작업내용] 긴급상황 텔레그램 통보(MQL5)
input bool   UseTelegramAlert = false;
input string TelegramBotToken = "";
input string TelegramChatId   = "";

void SendTelegramEmergency(string title, string detail)
{
   if(!UseTelegramAlert) return;
   if(StringLen(TelegramBotToken) == 0 || StringLen(TelegramChatId) == 0) return;

   string base = "https://api.telegram.org/bot" + TelegramBotToken + "/sendMessage";
   string text = "[긴급] " + title + "\n계좌: " + (string)AccountInfoInteger(ACCOUNT_LOGIN) + "\n" + detail;
   string post = "chat_id=" + TelegramChatId + "&text=" + UrlEncode(text);

   uchar data[];
   StringToCharArray(post, data, 0, WHOLE_ARRAY, CP_UTF8);
   uchar result[];
   string headers = "Content-Type: application/x-www-form-urlencoded\r\n";
   int timeout = 5000;
   string resp_headers = "";
   int code = WebRequest("POST", base, headers, timeout, data, result, resp_headers);
   if(code == -1)
      Print("Telegram WebRequest fail: ", GetLastError());
}

// 사용 예: 인증 실패 시
// SendTelegramEmergency("EA 인증 실패", "API키/슬롯ID 확인 필요");

권장: 같은 이벤트를 반복 전송하지 않도록, 마지막 전송 시각/키를 저장해 중복 알림을 제한하세요.

7. 자주 나오는 메시지

  • WebRequest 오류: 도구 → 옵션 → Expert Advisors에서 URL에 https://copytrade.co.kr 추가 후 MT 재시작.
  • 텔레그램 알림 미동작: WebRequest 목록에 https://api.telegram.org이 있는지, Bot Token/Chat ID가 정확한지 확인하세요.
  • 동시 접속 차단(CONCURRENT_ACCESS): 같은 API키를 다른 PC/MT에서 사용 중. 슬롯은 한 곳에서만 사용해야 합니다.
  • API키 불일치/만료: 슬롯관리에서 API키를 확인한 뒤 EA 입력란에 정확히 다시 입력.
  • 마스터의 카피매매 허용이 설정되지 않았습니다: 마스터가 슬롯관리에서 "카피매매 허용"을 켜야 카피어가 신호를 받을 수 있습니다.
  • 심볼 없음: 마스터와 카피어의 통화쌍 베이스(예: EURUSD)가 같아야 합니다. 서버는 symbol_base를 내려주며, 카피어 EA는 MySuffix로 본인 브로커 접미사만 맞추면 됩니다. 차트/마켓참가에 해당 심볼이 있어야 합니다.

관리자에서 문서·FAQ의 "copy_ea_guide" 페이지를 등록·수정하면 이 본문을 덮어쓸 수 있습니다.

카피트레이딩으로