โ† 모든 튜토리얼
MT5 API ยท 4:57

예약 주문 관리하기

주문, 조회, 수정, 취소, 결과 확인.

단계별 설명

  1. 0:00

    예약 주문 관리하기

    이 튜토리얼에서는 전용 데모 계좌에서 MT5 예약 주문을 넣고, 내용을 조회하고, 수정한 다음 취소하는 방법을 설명합니다.

  2. 0:13

    데모 계좌를 연결하세요

    mt5.mrpc.pro를 엽니다. TRIAL 또는 개인 API 키를 설정하고 ConnectEx에 데모 계좌 번호, 거래 비밀번호, 정확한 브로커 서버 이름을 입력한 뒤 실행하세요. 성공하면 콘솔이 반환된 터미널 ID를 저장해 다음 요청에 사용합니다. 연습에는 전용 데모 계좌를 사용하세요.

  3. 0:42

    현재 시세를 확인하세요

    SymbolInfoTick을 선택하고 정확한 종목 이름을 입력합니다. 이 녹화에서 EURUSD의 ask는 약 1.1147입니다. Buy Limit은 현재 ask보다 낮은 가격에 설정해야 합니다. 이번에는 시장 가격에서 충분히 떨어진 1.05를 선택합니다. 브로커가 허용하는 가격 단위와 거래량 단위를 사용하세요.

  4. 1:12

    Buy Limit을 넣으세요

    OrderSend를 엽니다. 기본값인 시장가 Buy 대신 Buy Limit을 선택하세요. 거래량은 0.01랏, 진입 가격은 1.05로 입력합니다. 실행 전에 종목과 주문 유형을 다시 확인하세요. 예약 주문은 진입 조건을 기다리는 주문이므로, 등록됐다고 해서 시장 포지션이 열린 것은 아닙니다.

  5. 1:41

    주문 티켓을 저장하세요

    응답은 HTTP Status Code 200이며 API 오류는 없고 returnedCode는 10009, Done입니다. 이 예약 주문에서는 주문 등록이 완료됐다는 뜻입니다. order 필드에 조회, 수정, 취소에 사용할 티켓이 있습니다. 시장에서 체결이 발생하지 않았으므로 여기서 deal이 0인 것은 정상입니다.

  6. 2:08

    등록된 주문을 확인하세요

    OpenedOrders를 호출하고 openedOrders에서 같은 티켓을 찾습니다. 종목, Buy Limit 유형, placed 상태, 진입 가격, 남은 거래량을 확인하세요. 이 녹화에서는 positionInfos 목록이 비어 있습니다. 체결된 포지션이 아니라 예약 주문이라는 것을 확인할 수 있습니다. 이후에도 같은 티켓을 사용합니다.

  7. 2:38

    진입 가격을 변경하세요

    OrderModify를 열고 예약 주문의 티켓을 입력합니다. price를 1.04로 설정하세요. 이번 요청은 진입 가격만 바꾸므로 선택 사항인 손절, 익절, 만료 시간은 비워 둡니다. 한 번 실행한 뒤 다른 작업을 하기 전에 응답을 확인하세요.

  8. 3:01

    변경 내용을 검증하세요

    수정 결과는 Done입니다. OpenedOrders를 다시 호출하고 같은 티켓을 찾으세요. priceOpen은 1.04로 바뀌었고, 유형은 여전히 Buy Limit이며 거래량은 0.01입니다. HTTP 성공만 보고 주문이 바뀌었다고 가정하지 않고, 실제 저장된 결과를 다시 조회해 확인하는 과정입니다.

  9. 3:30

    예약 주문을 취소하세요

    취소하려면 OrderClose를 열고 예약 주문의 티켓을 입력합니다. 이 예약 주문 삭제에서는 volume을 비워 둡니다. 이름은 OrderClose이지만 예약 주문도 삭제할 수 있습니다. 티켓을 먼저 확인하세요. 포지션 티켓을 입력하면 예약 주문 취소가 아니라 포지션 청산을 요청하게 됩니다.

  10. 3:58

    삭제 결과를 확인하세요

    결과에는 Done과 closeMode의 MRPC_PENDING_ORDER_REMOVE가 표시됩니다. OpenedOrders를 다시 호출하세요. 녹화에서는 두 목록이 모두 비어 있고 예약 주문 티켓도 사라졌습니다. 취소 전에 주문이 체결됐다면, 다른 작업을 하기 전에 포지션과 거래 내역에서 현재 상태를 확인하세요.

  11. 4:26

    정리하고 종료하세요

    주문이 삭제됐고 남은 포지션도 없습니다. 작업이 끝나면 터미널 연결을 해제하세요. Disconnect만 호출해서는 예약 주문이 취소되지 않습니다. 요청이 거절되면 먼저 error를 확인하고, data에 브로커 결과가 있으면 반환 코드와 설명을 읽으세요. 표시된 문제를 해결한 뒤 다시 시도합니다. 이제 예약 주문의 전체 과정을 완료했습니다.