자동매매 비활성화로 EA가 작동하지 않을 때
목차
- 10027과 10026의 차이 (클라이언트 비활성화 vs 서버 비활성화)
- ① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027 (내 단말기 쪽에서 OFF)
- ② TRADE_RETCODE_SERVER_DISABLES_AT = 10026 (브로커 쪽에서 OFF)
- MT5의 매매 허용은 4단계 구조 — 전부 ON이 되어야 비로소 작동
- 1단계: 툴바의 "알고 트레이딩" 버튼 (단말기 전체)
- 2단계: 옵션 설정의 "알고리즘 트레이딩 허용"
- 3단계: 차트별 EA 설정 "알고 트레이딩 허용"
- 4단계: 차트 오른쪽 위 EA 아이콘 상태
- 30초 트리아지 (이 순서로 확인)
- 놓치기 쉬운 원인 5가지
- ① 인베스터 비밀번호로 로그인되어 있음 (읽기 전용)
- ② 브로커가 해당 계좌 유형에서 EA를 금지하고 있음 (10026)
- ③ 단말기 재시작·업데이트·계좌 전환으로 버튼이 원래대로 돌아감
- ④ VPS에서 자동 시작 시 자동매매가 OFF인 채로 유지됨
- ⑤ 데모 계좌와 실계좌의 착오
- MQL5로 이 상태를 감지하기 (EA 개발자용)
- 운용 포인트
- 우선순위 체크리스트
- 정리
- FAQ
- Q: 알고 트레이딩 버튼을 ON으로 했는데 EA가 진입하지 않습니다.
- Q: 10027과 10026은 어떻게 다릅니까?
- Q: 어제까지는 작동했는데 저절로 자동매매가 OFF가 되어 있었습니다.
- Q: 수동 주문은 되는데 EA만 주문이 나가지 않습니다.
"자동매매가 비활성화"되어 EA가 작동하지 않을 때 (MT5)
EA를 차트에 설정했는데 몇 시간을 기다려도 한 번도 진입하지 않는다——이럴 때 가장 먼저 의심해야 할 것이 "자동매매(알고리즘 트레이딩) 비활성화"입니다. 눈에 띄는 오류 없이 조용히 멈추는 것이 특징이며, EA가 작동하지 않는 원인으로는 압도적인 1위입니다. 게다가 MT5의 매매 허용은 4단계 구조로 되어 있어, 그중 하나라도 OFF면 주문이 통과되지 않습니다.
이 글에서는 MT5에서 EA를 사용하는 사람과 MQL5로 EA를 작성하는 사람 모두를 위해, 관련된 두 가지 리턴 코드 **10027(TRADE_RETCODE_CLIENT_DISABLES_AT)**과 **10026(TRADE_RETCODE_SERVER_DISABLES_AT)**의 의미, 4단계 허용 구조, 놓치기 쉬운 원인, 코드 측에서의 감지 방법까지 정리합니다. 오류 코드 전반의 목록은 MQL5 / MT5 오류 코드 대처법 종합 가이드를 참고하세요.
이 글은 2026년 7월 기준 MT5(build 4xxx 계열)를 전제로 합니다. 화면 이름과 아이콘 모양은 빌드에 따라 다소 다를 수 있습니다.
10027과 10026의 차이 (클라이언트 비활성화 vs 서버 비활성화)
"자동매매가 비활성화"됨을 나타내는 리턴 코드는 두 가지가 있으며, 어느 쪽이 막고 있는지가 다릅니다. 이것만 구분해도 대처법이 절반은 정해집니다.
① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027 (내 단말기 쪽에서 OFF)
클라이언트(=당신의 MT5 단말기) 쪽 설정에서 자동매매가 비활성화된 상태입니다. 툴바의 "알고 트레이딩" 버튼이 OFF이거나, 옵션 설정의 허용이 해제되어 있는 등이 원인입니다. 이 경우 주문 요청은 브로커 서버로 전송되기 전에 단말기 내부에서 거부됩니다.
의미: 클라이언트 터미널에서 자동매매가 비활성화(AutoTrading disabled by client)
상수: TRADE_RETCODE_CLIENT_DISABLES_AT
값 : 10027
Experts(전문가) 탭에는 다음과 같은 로그가 출력됩니다.
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) OrderSend failed 10027
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) CTrade::OrderSend: ... [autotrading disabled by client]
대처법은 자신의 MT5 설정을 고치는 것뿐입니다. 다음 장의 4단계를 모두 ON으로 하면 해결됩니다.
② TRADE_RETCODE_SERVER_DISABLES_AT = 10026 (브로커 쪽에서 OFF)
서버(=브로커) 쪽이 해당 계좌의 자동매매를 금지하고 있는 상태입니다. 단말기 설정을 아무리 확인해도 고쳐지지 않습니다. 일부 보너스 계좌·센트 계좌·콘테스트 계좌 등에서 "EA 사용 불가" 약관으로 되어 있는 경우, 약관 위반 등으로 브로커가 계좌 단위로 알고리즘 트레이딩을 막고 있는 경우가 해당합니다.
의미: 서버 측에서 자동매매가 비활성화(AutoTrading disabled by server)
상수: TRADE_RETCODE_SERVER_DISABLES_AT
값 : 10026
대처법은 브로커에게 문의하는 것뿐입니다. 계좌 유형이 EA를 지원하는지(지원 계좌로 변경·신규 개설이 필요한지) 고객지원에 문의하세요.
| 코드 | 상수 | 막고 있는 쪽 | 대처 |
|---|---|---|---|
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | 내 MT5 단말기 | 단말기의 4단계 허용을 ON (본문에서 해결) |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | 브로커 서버 | 브로커에게 계좌의 EA 가능 여부 확인 |
MT5의 매매 허용은 4단계 구조 — 전부 ON이 되어야 비로소 작동
MT5에서는 EA가 주문을 낼 수 있을 때까지 4개의 독립된 스위치가 있습니다. 하나라도 OFF면 주문이 통과되지 않습니다. "어제까지는 잘 됐는데"라는 경우에도 이 4단계 중 하나가 꺼져 있는 것입니다.
1단계: 툴바의 "알고 트레이딩" 버튼 (단말기 전체)
MT5 상단 툴바의 "알고 트레이딩" 버튼. ON이면 초록색 재생 표시(▶), OFF면 빨간색 정지 표시로 나타납니다. 단축키는 Ctrl+E(무심코 눌러서 OFF가 되는 사고가 의외로 많습니다). 여기가 OFF면 모든 차트·모든 EA의 주문이 일괄 중단되며 10027이 발생합니다.
2단계: 옵션 설정의 "알고리즘 트레이딩 허용"
도구 → 옵션 → 전문가 어드바이저 탭의 "알고리즘 트레이딩을 허용한다" 체크. 1단계 버튼의 기반이 되는 설정으로, 여기가 해제되어 있으면 버튼을 ON으로 할 수 없거나, 해도 주문이 나가지 않습니다.
같은 탭에는 "~할 때 알고리즘 트레이딩을 비활성화한다" 계열의 체크(계좌 전환 시/프로필 전환 시/차트의 종목·기간 변경 시)도 있습니다. 여기에 체크가 되어 있으면 계좌를 전환하는 순간 등에 1단계 버튼이 자동으로 OFF로 돌아갑니다. "가끔 저절로 멈춘다"의 정체는 대개 이것입니다.
3단계: 차트별 EA 설정 "알고 트레이딩 허용"
EA를 차트에 삽입할 때의 대화상자(또는 차트 위 EA 이름을 우클릭 → 설정)의 "일반(Common)" 탭 → "알고 트레이딩 허용" 체크. 이는 해당 차트의 해당 EA에만 적용되는 스위치입니다. 여기가 해제되어 있으면 다른 EA는 작동하는데 이 EA만 작동하지 않는 상태가 됩니다(이 경우 MQLInfoInteger(MQL_TRADE_ALLOWED)가 false가 됩니다).
4단계: 차트 오른쪽 위 EA 아이콘 상태
EA가 정상적으로 로드되면 **차트 오른쪽 위에 EA 이름과 작은 아이콘(모자 표시)**이 표시됩니다.
- 컬러(파란 계열) 모자 = EA가 가동 중이며 매매 가능
- 회색 모자/취소 표시 = EA는 로드되었지만 매매 불가(위의 1~3단계 중 하나가 OFF)
- EA 이름 자체가 표시되지 않음 = 애초에 EA가 차트에 올라가 있지 않음(삽입 실패·삭제됨)
아이콘은 "결과 표시"이며 직접 조작하는 스위치는 아니지만, 한눈에 상태를 확인할 수 있는 가장 빠른 체크포인트입니다. 빌드에 따라 표현이 다소 다를 수 있습니다.
| 단계 | 위치 | 영향 범위 | MQL5에서의 감지 |
|---|---|---|---|
| ① 알고 트레이딩 버튼 | 툴바(Ctrl+E) | 단말기 전체 | TERMINAL_TRADE_ALLOWED |
| ② 옵션의 허용 | 도구→옵션→전문가 어드바이저 | 단말기 전체 | TERMINAL_TRADE_ALLOWED |
| ③ 차트별 허용 | EA 설정→일반 탭 | 해당 차트의 EA만 | MQL_TRADE_ALLOWED |
| ④ EA 아이콘 | 차트 오른쪽 위 | 상태 표시 | —(①~③의 결과) |
30초 트리아지 (이 순서로 확인)
- 툴바의 "알고 트레이딩" 버튼이 초록색(▶)인가? → 빨간색이면 클릭하여 ON(Ctrl+E)
- 차트 오른쪽 위에 EA 이름 + 컬러 모자 아이콘이 표시되어 있는가? → 회색이면 다음으로, 이름 자체가 없다면 EA를 다시 삽입
- EA 설정 → 일반 탭 → "알고 트레이딩 허용"에 체크가 되어 있는가? → 해제되어 있으면 체크하고 재적용
- 도구 → 옵션 → 전문가 어드바이저 → "알고리즘 트레이딩을 허용한다"가 유효한가? → "계좌 전환 시 비활성화" 계열 체크도 함께 확인
- 계좌 정보 확인 — 인베스터(읽기 전용) 비밀번호로 로그인하지 않았는가? → 거래용 비밀번호로 다시 로그인
- 1~5가 전부 정상인데 10026이 발생한다 → 브로커에게 "이 계좌에서 EA를 사용할 수 있는지" 확인
대부분의 경우 1~3단계에서 해결됩니다.
놓치기 쉬운 원인 5가지
① 인베스터 비밀번호로 로그인되어 있음 (읽기 전용)
MT5 계좌에는 거래용 비밀번호와 인베스터 비밀번호(읽기 전용) 두 종류가 있습니다. 인베스터 비밀번호로 로그인하면 수동·자동을 불문하고 일체의 주문이 불가능하며, 알고 트레이딩 버튼을 눌러도 매매할 수 없습니다. 다른 사람에게 계좌를 보여준 후나, 비밀번호 관리자가 예전 비밀번호를 기억하고 있던 경우에 자주 발생합니다. MQL5에서는 AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)가 false가 되므로 판별할 수 있습니다. 거래용 비밀번호로 다시 로그인하세요.
② 브로커가 해당 계좌 유형에서 EA를 금지하고 있음 (10026)
일부 센트 계좌·보너스 계좌·콘테스트 계좌는 약관상 EA 사용이 불가능한 경우가 있습니다. 이 경우 서버 측이 거부하므로 10026이 반환되며, 단말기 측에서는 해결할 수 없습니다. 계좌 개설 시 약관을 확인하고, 필요하다면 EA 지원 계좌 유형으로 변경합니다.
③ 단말기 재시작·업데이트·계좌 전환으로 버튼이 원래대로 돌아감
MT5 업데이트 적용 후나, 옵션의 "계좌 전환 시 알고리즘 트레이딩을 비활성화한다" 등이 활성화된 환경에서는 알고 트레이딩 버튼이 OFF로 돌아가는 경우가 있습니다. "지난주까지는 작동했는데 어느샌가 멈춰 있었다" 패턴의 전형입니다. 재시작·전환할 때마다 버튼 색상을 확인하는 습관을 들이거나, 옵션의 자동 비활성화 체크를 해제하세요.
④ VPS에서 자동 시작 시 자동매매가 OFF인 채로 유지됨
VPS 운용에서는 "Windows 재시작 → MT5 자동 시작"까지 구성했더라도 시작된 MT5의 알고 트레이딩이 OFF인 채인 경우가 있습니다. MT5는 시작 시 /config로 설정 파일(ini 파일)을 전달하는 구조가 있으며, [Experts] 섹션에서 자동매매 허용(AllowLiveTrading)이나 EA 자동 첨부를 지정할 수 있습니다. 자동 시작을 구성할 경우 이 시작 시 설정까지 포함하여 구성하고, 재시작 후 반드시 차트 오른쪽 위 아이콘이 컬러로 표시되어 있는지 원격으로 확인하세요. VPS는 "무인으로 가동하기 위한" 환경이므로 이 확인을 소홀히 하면 며칠~몇 주간의 기회 손실로 이어집니다.
⑤ 데모 계좌와 실계좌의 착오
데모에서는 EA가 작동하는데 실계좌에서는 작동하지 않는(또는 그 반대) 경우, MT5가 지금 어느 계좌에 로그인되어 있는지를 확인하세요. 옵션의 "계좌 전환 시 알고 트레이딩 비활성화"가 작동하여 버튼이 꺼져 있는 경우, 실계좌 쪽만 인베스터 비밀번호로 로그인되어 있는 경우가 전형적입니다. 내비게이터의 계좌 번호와 터미널 오른쪽 아래의 연결 표시를 보면 10초 만에 확인할 수 있습니다.
MQL5로 이 상태를 감지하기 (EA 개발자용)
"조용히 멈추는" 것이 10027/10026의 성가신 점입니다. EA 쪽에서 어느 단계가 차단하고 있는지를 로그와 경고로 자체 보고하게 하면 지원 비용이 크게 줄어듭니다. 사용할 함수는 다음 4가지입니다.
| 함수 | 무엇을 확인하는가 |
|---|---|
TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) | 단말기 전체의 알고 트레이딩 허용(버튼+옵션) |
MQLInfoInteger(MQL_TRADE_ALLOWED) | 이 EA(이 차트)의 매매 허용 |
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) | 계좌로서 매매 가능한지(인베스터 로그인이면 false) |
AccountInfoInteger(ACCOUNT_TRADE_EXPERT) | 계좌로서 EA 매매가 허용되어 있는지(서버 측 설정) |
// 어느 단계가 자동매매를 차단하고 있는지 특정하여 출력한다
bool CheckAlgoTradingAllowed()
{
bool ok = true;
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
{
Print("BLOCKED [Terminal]: AutoTrading button is OFF (toolbar / Ctrl+E) or disabled in Options");
ok = false;
}
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
Print("BLOCKED [Chart/EA]: 'Allow Algo Trading' is unchecked in this EA's Common tab");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
{
Print("BLOCKED [Account]: trading not allowed - investor (read-only) login?");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
Print("BLOCKED [Server]: broker disabled EA trading for this account (retcode 10026)");
ok = false;
}
return ok;
}
운용 포인트
OnInit에서 한 번 체크하여 경고하고, OnTick에서는 멈추지 않는 것이 정석입니다.
int OnInit()
{
if(!CheckAlgoTradingAllowed())
Alert("EA loaded, but algo trading is blocked. See Experts log for the reason.");
return INIT_SUCCEEDED; // INIT_FAILED로 하지 않는다
}
여기서 INIT_FAILED로 해버리면, 사용자가 버튼을 ON으로 한 후에 EA를 다시 삽입해야 하는 수고가 발생합니다. 로드 자체는 성공시켜 두면 사용자가 알고 트레이딩 버튼을 ON으로 하는 순간부터 매매가 시작됩니다. OnTick 쪽에서는 상태가 바뀌었을 때만 한 번 로그를 출력하는(매 틱마다 Print하지 않는) 구현으로 하면 Experts 탭이 넘치지 않습니다.
또한 OrderSend()의 retcode로 10027 / 10026을 받았을 때 상수 이름을 포함하여 로그를 남겨두면 사후 조사가 쉬워집니다.
if(res.retcode == TRADE_RETCODE_CLIENT_DISABLES_AT) // 10027
Print("Order rejected: AutoTrading disabled on YOUR terminal. Turn ON the Algo Trading button.");
else if(res.retcode == TRADE_RETCODE_SERVER_DISABLES_AT) // 10026
Print("Order rejected: broker disabled autotrading for this account. Contact your broker.");
FXEA365에서 배포하는 EA는 차트 위 대시보드에 자동매매의 ON/OFF 상태를 항상 표시하는 사양이므로, 이 "조용히 멈춰 있는" 상태를 화면을 본 순간 바로 알아챌 수 있습니다.
우선순위 체크리스트
| 우선순위 | 확인 | 대처 |
|---|---|---|
| 🚨 우선 | 알고 트레이딩 버튼이 빨간색(OFF) | 클릭하여 ON(Ctrl+E) |
| 🚨 우선 | 차트 오른쪽 위 EA 아이콘이 회색 | 4단계를 순서대로 확인 |
| ⚠️ 다음 | EA 설정·일반 탭의 "알고 트레이딩 허용" | 체크하고 재적용 |
| ⚠️ 다음 | 옵션의 허용 + 자동 비활성화 체크 | 허용 ON·자동 비활성화 재검토 |
| ✅ 확인 | 인베스터 비밀번호로 로그인 | 거래용 비밀번호로 다시 로그인 |
| ✅ 확인 | 10026(서버 측 거부) | 브로커에게 계좌의 EA 가능 여부 확인 |
| 🛠 개발 | EA가 조용히 멈춤 | 위의 단계별 체크 코드를 구현 |
정리
- "EA가 작동하지 않는" 원인 1위는 자동매매(알고 트레이딩) 비활성화. 오류를 내지 않고 조용히 멈추는 것이 특징.
- 10027 = 내 단말기 쪽에서 OFF(스스로 해결 가능), 10026 = 브로커 쪽에서 OFF(고객지원에 확인).
- MT5의 매매 허용은 ①툴바 버튼 ②옵션 ③차트별 EA 설정 ④아이콘 표시의 4단계. 전부 ON이 되어야 비로소 주문이 통과.
- 인베스터 비밀번호·계좌 전환 시 자동 OFF·VPS 재시작 후 OFF 복귀가 3대 놓치기 쉬운 원인.
- EA 개발자는
TERMINAL_TRADE_ALLOWED/MQL_TRADE_ALLOWED/ACCOUNT_TRADE_ALLOWED/ACCOUNT_TRADE_EXPERT로 어느 단계가 막고 있는지 자체 보고하게 한다.
오류 코드 전반은 MQL5 / MT5 오류 코드 대처법 종합 가이드를, 상태를 항상 표시하는 대시보드가 탑재된 무료 EA는 EA 목록을 참고하세요.
FAQ
Q: 알고 트레이딩 버튼을 ON으로 했는데 EA가 진입하지 않습니다.
버튼(1단계) 외의 단계를 확인하세요. 특히 많은 경우가 차트별 EA 설정(일반 탭)의 "알고 트레이딩 허용" 해제입니다. 차트 오른쪽 위 EA 아이콘이 컬러로 표시되는지로 최종 확인할 수 있습니다. 아이콘이 컬러인데도 진입하지 않는 경우는 자동매매 문제가 아니라 EA의 진입 조건이 충족되지 않았을 가능성이 높습니다(Experts 탭 로그 확인).
Q: 10027과 10026은 어떻게 다릅니까?
10027(TRADE_RETCODE_CLIENT_DISABLES_AT)은 당신의 MT5 단말기가 자동매매를 비활성화한 상태로, 단말기 설정 변경으로 해결할 수 있습니다. 10026(TRADE_RETCODE_SERVER_DISABLES_AT)은 브로커 서버가 계좌 단위로 자동매매를 금지한 상태로, 단말기 측에서는 해결할 수 없습니다. 브로커에게 계좌 유형의 EA 가능 여부를 확인하세요.
Q: 어제까지는 작동했는데 저절로 자동매매가 OFF가 되어 있었습니다.
옵션(도구 → 옵션 → 전문가 어드바이저)의 "계좌 전환 시/프로필 전환 시 알고리즘 트레이딩을 비활성화한다" 계열 체크가 원인일 가능성이 높습니다. 또한 MT5 업데이트 후 버튼이 OFF 상태로 시작되는 경우도 있습니다. VPS 운용이라면 재시작 후 확인을 반드시 루틴에 포함시키세요.
Q: 수동 주문은 되는데 EA만 주문이 나가지 않습니다.
수동이 통과된다면 계좌 자체는 살아 있습니다. 차트별 EA 설정(일반 탭) 또는 툴바의 알고 트레이딩 버튼이 OFF입니다. 수동 매매는 "알고 트레이딩" 허용과 무관하게 통과되므로, 이 증상은 자동매매 레이어의 비활성화를 강하게 시사합니다. 그래도 해결되지 않고 10026이 발생하는 경우, 브로커가 계좌의 EA 사용을 제한하고 있습니다.
관련 기사
📧 가격 인상 사전 알림 + 무료 5일 이메일 강좌
모든 EA는 현재 출시 가격이며 판매 수량에 따라 단계적으로 인상됩니다. 인상 전 사전 알림과 함께 자동매매의 본질, 백테스트 해석법, 브로커 선택 요령을 매일 한 통씩 보내드립니다.
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.