MT5 주문 거부 리턴코드와 점검 우선순위
목차
결론: 먼저 "매번 실패하는지, 가끔 실패하는지"를 확인하세요
EA의 주문이 MT5에서 거부되면 로그에 "retcode=10030" 같은 숫자가 표시됩니다. 저희에게도 이 리턴코드에 관한 문의가 많이 들어옵니다.
결론부터 말씀드리겠습니다. 가장 먼저 볼 것은 거부가 매번 발생하는지, 가끔만 발생하는지입니다.
- 매번 실패한다 → 10030·10013·10018을 의심합니다. 설정이나 시간대의 문제이므로, 고치거나 중단하지 않는 한 몇 번을 시도해도 통과되지 않습니다.
- 가끔 실패한다 → 10004·10006을 의심합니다. 시장 상황이나 브로커 측 판단으로 발생하므로, 잠시 기다리면 통과되기도 합니다.
어느 쪽에 해당하느냐에 따라 확인할 곳도, 대응의 시급성도 달라집니다.
추천 브로커 비교 →
🎁 무료 EA 다운로드📧 무료 이메일 강좌(총 8통) + 구독자 전용 MT5 지표 13종 팩
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.
구조: 리턴코드는 "서버의 응답"입니다
EA가 주문을 내면 브로커 서버가 접수 여부를 판단하고 그 결과를 숫자로 돌려줍니다. 성공이면 10009(체결) 등이 반환되고, 실패하면 거부 사유를 나타내는 번호가 반환됩니다.
주의할 점은 이 번호가 어디까지나 서버가 돌려준 분류라는 것입니다. 거부의 진짜 이유까지는 알려주지 않는 경우가 있습니다. 특히 10006은 브로커 측에서 무엇을 판정했는지 로그만으로는 알 수 없는 경우가 많은 코드입니다.
| 코드 | MT5상의 의미 | 발생 방식 | 주요 확인처 | 기다리면 통과되는가 |
|---|---|---|---|---|
| 10018 | 시장이 닫혀 있음 | 매번(시간대에 따라) | 거래 시간·휴장일 | 개장하면 통과 |
| 10030 | 체결 방식(필링) 지정이 지원되지 않음 | 매번 | EA 설정·종목 사양 | 통과되지 않음 |
| 10013 | 요청이 올바르지 않음 | 매번인 경우가 많음 | 랏·가격·종목명 | 통과되지 않음 |
| 10004 | 리쿼트(가격이 변경됨) | 가끔 | 허용 슬리피지·시간대 | 통과되는 경우가 많음 |
| 10006 | 요청이 거부됨 | 가끔~매번 | 브로커 문의 | 알 수 없음 |
확인 절차: 이 순서대로 점검하세요
1. 10018: 먼저 시계를 확인합니다
가장 간단히 확인할 수 있으므로 제일 먼저 봅니다. 주말·공휴일·연말연시는 물론, 종목별 휴식 시간(골드나 주가지수는 장중에 휴식 시간이 있는 브로커가 많습니다)에 걸리지 않았는지 확인합니다. 시세 표시창에서 종목을 마우스 오른쪽 버튼으로 클릭해 "사양"을 열면 거래 시간을 볼 수 있습니다. 서버 시간과 한국 시간이 다르다는 점에도 유의하세요. 시간대가 원인이라면 아무것도 하지 않아도 개장 후에 통과됩니다.
2. 10030: 체결 방식을 맞춥니다
브로커나 계좌 유형에 따라 허용하는 체결 방식(FOK·IOC·Return)이 다릅니다. EA가 지원하지 않는 방식으로 주문하면 매번 거부됩니다. EA 입력값에 "Filling" 같은 항목이 있다면 종목 사양의 "체결" 란에 적힌 방식에 맞춥니다. 항목이 없다면 EA 쪽에서 수정해야 하므로 배포처에 문의하세요. 새 브로커나 다른 계좌 유형으로 옮긴 직후에 자주 발생합니다.
3. 10013: 주문 내용을 의심합니다
랏이 최소 랏보다 작거나, 랏 단위(스텝)에 맞지 않거나, 종목명 끝부분(".m", "#" 등)이 다른 것처럼 주문 내용이 잘못된 경우에 자주 나타납니다. 로그에 자세한 이유가 나오지 않기도 합니다. 랏이나 종목명을 조금씩 바꿔 가며 시도해 보는 수밖에 없는 경우도 있습니다. 설정 항목 점검 방법은 EA 설정 방법에 정리해 두었습니다.
4. 10004: 허용 슬리피지와 시간대
지표 발표 직후나 이른 아침처럼 가격이 빠르게 움직이는 시간대에 나오기 쉬운 코드입니다. EA에 "Slippage"나 "Deviation" 항목이 있다면 조금 넓혀 주면 줄어드는 경우가 있습니다. 다만 지나치게 넓히면 불리한 가격에 체결되는 것을 받아들이게 됩니다. 회선 지연이 겹친 경우라면 VPS로 개선되기도 합니다.
5. 10006: 브로커에 물어볼 수밖에 없는 경우가 있습니다
브로커 측 판단에 의한 거부로, 사용자 쪽에서는 원인이 보이지 않습니다. 계좌의 거래 제한, 종목의 일시적 거래 정지, 주문이 너무 많은 것에 대한 제한 등을 생각해 볼 수 있지만, 어느 쪽에 해당하는지는 저희도 단정할 수 없습니다. 로그의 시각과 주문 내용을 메모해 두고 브로커 고객지원에 문의하는 것이 확실합니다. 자주 발생한다면 브로커 비교를 참고해 브로커 변경을 검토하는 것도 한 가지 방법입니다.
한계와 주의사항
- 데모 계좌에서는 재현되지 않을 수 있습니다. 체결 방식이 데모 계좌와 실계좌에서 같다고는 할 수 없으며, 리쿼트나 거부가 발생하기 쉬운 정도가 다를 수 있습니다. 데모 계좌에서 문제없이 작동했더라도 실계좌에서 똑같이 통과된다고 단언할 수는 없습니다.
- 여러 번 다시 시도하는 것은 역효과가 될 수 있습니다. 10030이나 10013은 같은 주문을 다시 내도 통과되지 않습니다. 거부될 때마다 재전송하는 EA라면 짧은 시간에 주문이 몰려, 그것이 브로커 측 제한으로 이어질 가능성도 있습니다. 저희 EA는 10004처럼 일시적인 코드에 한해서만 횟수를 정해 재전송하는 방침을 택하고 있습니다.
- 거부된 거래는 기록에 남지 않습니다. 백테스트에서는 이런 거부가 거의 발생하지 않으므로, 실운용에서는 그만큼 성적이 어긋납니다. 테스터 결과대로 나오지 않는 이유 중 하나입니다.
- 리턴코드에는 여기서 다룬 5가지 외에도 잘못된 랏, 잘못된 가격, 증거금 부족 등의 번호가 있습니다. 이 글은 문의가 많은 5가지로 좁혀 정리한 것입니다.
정리
- 먼저 "매번 실패하는지, 가끔 실패하는지"를 확인한다
- 매번 실패한다면 10018(시간) → 10030(체결 방식) → 10013(주문 내용) 순으로 점검한다
- 가끔 실패한다면 10004(슬리피지·시간대)를 확인하고, 10006은 브로커에 문의한다
- 10030·10013은 몇 번을 다시 내도 통과되지 않으므로 설정을 고친다
- 10006의 진짜 원인은 사용자 쪽에서 보이지 않을 수 있으며, 저희도 단정할 수 없다
- 데모 계좌에서 통과되었다고 해서 실계좌에서도 똑같이 통과된다고는 할 수 없다
관련 기사
📧 무료 이메일 강좌(총 8통) + 구독자 전용 MT5 지표 13종 팩
※ 개인정보는 엄격히 보호. 언제든 구독 해지 가능.
EA나 FX에 대해 궁금한 점이 있나요?
Nattzy 트레이딩 포럼에 질문을 올릴 수 있습니다(무료 가입). 이 글의 내용이 아니어도 EA 설정이나 브로커 선택 등 어떤 질문이든 환영합니다.
Nattzy에서 질문하기 ↗