거래 서버의 반환 코드

거래 작업을 실행하기 위한 거래 요청 MqlTradeRequest의 구조로 전송되는 것은 OrderSend()함수를 사용합니다. 함수 실행 결과는 MqlTradeResult구조에 배치되며 retcode 필드에 트레이드 서버 반환 코드가 포함됩니다.

코드

정수

설명

10004

TRADE_RETCODE_REQUOTE

재산정

10006

TRADE_RETCODE_REJECT

요청 거부됨

10007

TRADE_RETCODE_CANCEL

트레이더에 의한 요청 취소

10008

TRADE_RETCODE_PLACED

주문 발주

10009

TRADE_RETCODE_DONE

요청 완료

10010

TRADE_RETCODE_DONE_PARTIAL

요청의 일부분만 완료됨

10011

TRADE_RETCODE_ERROR

요청 진행 오류

10012

TRADE_RETCODE_TIMEOUT

시간 종료에 의한 요청 취소

10013

TRADE_RETCODE_INVALID

유효하지 않은 요청

10014

TRADE_RETCODE_INVALID_VOLUME

요청의 유효하지 않은 볼륨

10015

TRADE_RETCODE_INVALID_PRICE

요청의 유효하지 않은 가격

10016

TRADE_RETCODE_INVALID_STOPS

요청의 유효하지 않은 중지

10017

TRADE_RETCODE_TRADE_DISABLED

거래가 불가능

10018

TRADE_RETCODE_MARKET_CLOSED

마켓이 닫힘

10019

TRADE_RETCODE_NO_MONEY

금액이 부족하여 요청을 완료할 수 없습니다

10020

TRADE_RETCODE_PRICE_CHANGED

가격 변경됨

10021

TRADE_RETCODE_PRICE_OFF

요청을 진행할 시세가 없습니다

10022

TRADE_RETCODE_INVALID_EXPIRATION

요청의 유효하지 않은 주문 만료일

10023

TRADE_RETCODE_ORDER_CHANGED

주문 상태 변경됨

10024

TRADE_RETCODE_TOO_MANY_REQUESTS

너무 빈번한 요청

10025

TRADE_RETCODE_NO_CHANGES

요청에 변경사항 없음

10026

TRADE_RETCODE_SERVER_DISABLES_AT

서버에서 자동거래 사용하지 않음

10027

TRADE_RETCODE_CLIENT_DISABLES_AT

클라이언트 터미널에서 자동거래 사용하지 않음

10028

TRADE_RETCODE_LOCKED

요청을 처리하기 위해 잠김

10029

TRADE_RETCODE_FROZEN

주문 또는 포지션이 동결됨

10030

TRADE_RETCODE_INVALID_FILL

유효하지 않은 주문 채우기 유형

10031

TRADE_RETCODE_CONNECTION

거래 서버와의 연결이 없음

10032

TRADE_RETCODE_ONLY_REAL

활성 계정에 대해서만 작업이 허용됩니다

10033

TRADE_RETCODE_LIMIT_ORDERS

보류 중인 주문의 수가 한도에 도달했습니다

10034

TRADE_RETCODE_LIMIT_VOLUME

기호에 대한 주문 및 포지션의 양이 한계에 도달했습니다

10035

TRADE_RETCODE_INVALID_ORDER

잘못되었거나 금지된 주문 유형

10036

TRADE_RETCODE_POSITION_CLOSED

지정한 POSITION_IDENTIFIER가 있는 포지션이 이미 닫혔습니다

10038

TRADE_RETCODE_INVALID_CLOSE_VOLUME

닫기 볼륨이 현재 포지션 볼륨을 초과합니다

10039

TRADE_RETCODE_CLOSE_ORDER_EXIST

지정 포지션에 대한 마감 순서가 이미 있습니다. 이러한 상황은 위험회피 시스템에서 작업할 때 발생할 수 있습니다:

  • 포지션에 대한 닫기 명령이 이미 있는 동안 반대 포지션으로 포지션을 닫으려고 할 때
  • 이미 존재하는 마감 주문의 총 볼륨과 새로 배치된 주문의 총 볼륨이 현재 위치 볼륨을 초과하는 경우 전체 또는 부분적으로 위치를 닫으려고 할 때

10040

TRADE_RETCODE_LIMIT_POSITIONS

계정에 동시에 존재하는 열려 있는 포지션 수는 서버 설정에 의해 제한될 수 있습니다. 제한에 도달하면 서버는 주문을 시도할 때 TRADE_RETCODE_LIMIT_POSITIONS 오류를 반환합니다. 포지션 계정 유형에 따라 제한이 다르게 작동합니다:

  • Netting — 열린 포지션의 수를 고려합니다. 제한에 도달하면 플랫폼이 새 주문을 작성할 수 없도록 하고, 이 주문이 실행되면 열린 포지션 수가 증가할 수 있습니다. 실제로 플랫폼에서는 이미 열린 포지션이 있는 기호에 대해서만 주문을 할 수 있습니다. 현재 보류 중인 주문은 실행이 현재 위치의 변경으로 이어질 수 있지만 수를 늘릴 수는 없기 때문에 고려되지 않습니다.
  • Hedging — 보류 중인 주문 활성화는 항상 새 포지션을 열기 때문에 보류 중인 주문은 열린 포지션과 함꼐 고려됩니다. 한도에 도달하면 플랫폼에서는 신규 시장 주문과 보류 중인 주문을 모두 배치할 수 없습니다.

10041

TRADE_RETCODE_REJECT_CANCEL

보류 중인 주문 활성화 요청이 거부되어 주문이 취소되었습니다

10042

TRADE_RETCODE_LONG_ONLY

기호에 대해 "장기 포지션만 허용" 규칙이 설정되었기 때문에 요청이 거부되었습니다 (POSITION_TYPE_BUY)

10043

TRADE_RETCODE_SHORT_ONLY

기호에 대해 "단기 포지션만 허용" 규칙이 설정되었기 때문에 요청이 거부되었습니다 (POSITION_TYPE_SELL)

10044

TRADE_RETCODE_CLOSE_ONLY

기호에 대해 "포지션 닫기만 허용" 규칙이 설정되었기 때문에 요청이 거부되었습니다

10045

TRADE_RETCODE_FIFO_CLOSE

"포지션 마감은 FIFO 규칙에 의해서만 허용됨" 플래그가 설정이 거래 계정 (ACCOUNT_FIFO_CLOSE=true)에 대해 되었기 때문에 요청이 거부되었습니다

10046

TRADE_RETCODE_HEDGE_PROHIBITED

거래 계정에 대해 "단일 기호의 반대 포지션이 비활성화됨" 규칙이 설정되었기 때문에 요청이 거부됩니다. 예를 들어, 계정에 매수 포지션이 있는 경우 사용자는 매도 포지션을 열거나 보류 중인 매도 주문을 작성할 수 없습니다. 이 규칙은 위험회피 회계 시스템이 있는 계정에만 적용됩니다 (ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING).