거래 트랜잭션 유형

거래 계좌에 대해 몇 가지 명확한 작업을 수행하면 상태가 변경됩니다. 이러한 작업에는 다음이 포함됩니다:

  • OrderSendOrderSendAsync 기능과 추가 실행을 사용하여 클라이언트 터미널의 MQL5 응용 프로그램에서 거래 요청 전송;
  • 터미널 그래픽 인터페이스 및 추가 실행을 통해 거래 요청 전송;
  • 서버에서 주문 보류 및 주문 활성화 중지;
  • 거래 서버측에서 작업 수행.

이러한 조치의 결과로 다음과 같은 매매 거래가 수행됩니다:

  • 거래 요청 처리;
  • 공개 주문 변경;
  • 주문 내역 변경;
  • 거래 내역 변경;
  • 포지션 변경.

예를 들어, 시장 매수 주문을 보낼 때 처리되고, 계정에 대한 적절한 매수 주문이 생성되며, 주문이 실행되어 열린 주문 목록에서 삭제되고, 주문 기록에 추가되고, 적절한 거래가 내역에 추가되고 새로운 포지션이 생성됩니다. 이 모든 행위는 매매 거래입니다.

프로그래머가 거래 계정과 관련하여 수행된 작업을 추적할 수 있도록 OnTradeTransaction 기능이 제공되었습니다. 이 처리기를 사용하면 MQL5 애플리케이션의 계정에 적용되는 거래 트랜잭션을 가져올 수 있습니다. 거래 트랜잭션 설명은 MqlTradeTransaction 구조를 사용하여 OnTradeTransaction 첫 번째 매개변수에 제출됩니다.

거래 트랜잭션 유형은 MqlTradeTransaction 구조의 유형 매개변수에 제출됩니다. 가능한 거래 트랜잭션 유형은 다음 열거값으로 설명됩니다:

ENUM_TRADE_TRANSACTION_TYPE

식별자

설명

TRADE_TRANSACTION_ORDER_ADD

새 공개 주문을 추가.

TRADE_TRANSACTION_ORDER_UPDATE

공개 주문 업데이트. 업데이트에는 클라이언트 터미널 또는 거래 서버 측의 명백한 변경 사항뿐만 아니라 설정 시 주문 상태의 변경도 포함됩니다 (예: ORDER_STATE_STARTED에서 ORDER_STATE_PLACED로 또는 ORDER_STATE_PLACED에서 ORDER_STATE_PARTIAL로 등의 전환).

TRADE_TRANSACTION_ORDER_DELETE

공개 주문 목록에서 주문을 제거. 주문은 적절한 요청 또는 실행(작성)을 설정하고 내역으로 이동하면 공개 주문에서 삭제할 수 있습니다

TRADE_TRANSACTION_DEAL_ADD

내역에 거래 추가. 이 작업은 주문 실행 또는 계전 잔고로 작업 수행의 결과로 수행됩니다.

TRADE_TRANSACTION_DEAL_UPDATE

내역에 거래 업데이트. 이전에 실행된 거래가 서버에서 변경된 경우가 있을 수 있습니다. 예를 들어, 거래는 이전 브로커에 의해 이전되었던 외부 거래 시스템(거래소)에서 변경되었습니다.

TRADE_TRANSACTION_DEAL_DELETE

내역에서 거래 삭제. 이전에 실행된 거래가 서버에서 삭제되는 경우가 있을 수 있습니다. 예를 들어 거래에는 이전 브로커에 의해 이전되었던 외부 거래 시스템(거래소)에서 삭제되었습니다.

TRADE_TRANSACTION_HISTORY_ADD

실행 또는 취소 결과로 기록에 주문 추가.

TRADE_TRANSACTION_HISTORY_UPDATE

주문 내역에 있는 주문을 변경. 이 유형은 거래 서버 측의 기능을 강화하기 위해 제공됩니다.

TRADE_TRANSACTION_HISTORY_DELETE

거래 내역에서 주문 삭제. 이 유형은 거래 서버 측의 기능을 강화하기 위해 제공됩니다.

TRADE_TRANSACTION_POSITION

거래 실행과 관련없는 포지션 변경. 이 트랜잭션 유형은 거래 서버 쪽에서 포지션이 변경되었음을 나타냅니다. 포지션 볼륨, 공개 가격, Stop Loss 및 Take Profit 레벨을 변경할 수 있습니다. 변경 사항에 대한 데이터는 OnTradeTransaction 처리기를 통해 MqlTradeTransaction 구조로 제출됩니다. 거래 실행으로 인한 위치 변경(추가, 변경 또는 마감)으로 인해 TRADE_TRANSACTION_POSITION 트랜잭션이 발생하지 않습니다.

TRADE_TRANSACTION_REQUEST

거래요청이 서버에서 처리되어 처리 결과를 수신했습니다. MqlTradeTransaction 구조의 해당 트랜잭션에 대해 유형 필드(거래 트랜잭션 유형)만 분석해야 합니다. 추가 데이터를 위해 OnTradeTransaction의 두 번째 및 세 번째 매개변수(요청 및 결과)를 분석해야 합니다.

거래 트랜잭션 유형에 따라 MqlTradeTransaction 구조에 다양한 매개변수가 입력됩니다. 제출된 데이터에 대한 자세한 설명은 "거래 트랜잭션 구조"에 나와있습니다.

추가 참조

거래 트랜잭션 구조, OnTradeTransaction