거래 요청 구조 (MqlTradeRequest)
주문 배치 작업을 실행하기 위한 클라이언트 터미널과 거래 서버 간의 상호 작용은 거래 요청을 사용하여 수행됩니다. 거래 요청은 거래 딜을 수행하는 데 필요한 모든 필드를 포함하는 MqlTradeRequest 유형의 특별한 사전 정의된 구조로 표시됩니다. 요청 처리 결과는 MqlTradeResult 유형의 구조로 표시됩니다.
struct MqlTradeRequest
|
필드 설명
필드 |
설명 |
---|---|
액션 |
거래 작업 유형. ENUM_TRADE_REQUEST_ACTIONS 열거 값 중 하나일 수 있습니다. |
매직 |
엑스퍼트 어드바이저 ID. 거래 주문의 분석 처리를 체계화 할 수 있습니다. 각 엑스퍼트 어드바이저는 거래 요청을 보낼 때 고유한 ID를 설정할 수 있습니다. |
주문 |
주문 티켓. 보류 중인 주문을 수정하는 데 사용됩니다. |
심볼 |
주문의 심볼. 주문 수정 및 포지션 닫기 작업에는 필요하지 않습니다. |
볼륨 |
요청된 로트 단위 주문량. 거래의 실제 볼륨은 주문 실행 유형에 따라 달라집니다. |
가격 |
가격, 무문을 실행해야 하는 수준입니다. 실행 유형이 (SYMBOL_TRADE_EXECUTION_MARKET) TRADE_ACTION_DEAL 유형의 "시장 실행"인 기호의 시장 주문에는 가격 사양이 필요하지 않습니다. |
stoplimit |
가격이 가격 가치에 도달했을 때(해당 조건이 의무임) 제한 보류 중인 주문이 배치되는 가격 가치. 그 때까지 보류 중인 주문이 처리되지 않습니다. |
sl |
가격 이동이 불리한 경우 손실 가격 중지하기 |
tp |
가격 이동이 유리한 경우 이익 가격 취득 |
편차 |
포인트로 지정된 최대 가격 편차 |
유형 |
주문 유형. ENUM_ORDER_TYPE 열거 값 중 하나일 수 있습니다. |
type_filling |
주문 실행 유형. ENUM_ORDER_TYPE_FILLING 열거 값 중 하나일 수 있습니다. |
type_time |
주문 만료 유형. ENUM_ORDER_TYPE_TIME 열거 값 중 하나일 수 있습니다. |
만료 |
주문 만료 시간 (ORDER_TIME_SPECIFIED 유형 주문의 경우) |
코멘트 |
주문 코멘트 |
포지션 |
포지션의 티켓. 위치를 식별하기 위해 포지션을 수정하거나 닫을 때 채워야 합니다. 원칙적으로 그것은 그 포지션이 열린 주문의 티켓과 같습니다. |
position_by |
반대 포지션의 티켓. 위치가 반대 방향으로 동일한 기호에 대해 반대 방향으로 열려 있을 때 사용됩니다. |
위험 회피 시스템에서 위치를 수정하거나 닫을 때 해당 티켓(MqlTradeRequest::position)을 지정해야 합니다. 위치는 기호 이름으로 식별되지만 티켓은 네트 시스템에서 지정할 수도 있습니다. |
거래 작업을 수행하기 위해 주문을 전송하려면 OrderSend() 기능을 사용해야 합니다. 각 거래 작업에 대해 의무 필드를 지정해야 하며, 옵션 필드도 채워질 수 있습니다. 거래 주문을 보낼 수 있는 7가지 경우가 있습니다:
요청 실행
요청 실행 모두에서 포지션을 열기 위한 거래 주문입니다(요청된 가격에 따라 거래). 다음 9개의 필드를 지정해야 합니다:
- 액션
- 심볼
- 볼륨
- 가격
- sl
- tp
- 편차
- 유형
- type_filling
또한 "매직" 및 "코멘트" 필드 값을 지정할 수 있습니다.
인스턴트 실행
인스턴트 실행 모드에서 포지션을 열기 위한 거래 순서입니다(현재 가격 기준 거래). 다음 9개의 필드를 지정해야 합니다:
- 액션
- 심볼
- 볼륨
- 가격
- sl
- tp
- 편차
- 유형
- type_filling
또한 "매직" 및 "코멘트" 필드 값을 지정할 수 있습니다.
마켓 실행
마켓 실행 모드에서 포지션을 열기 위한 거래 순서입니다. 다음 5개의 필드를 지정해야 합니다:
- 액션
- 심볼
- 볼륨
- 유형
- type_filling
또한 "매직" 및 "코멘트" 필드 값을 지정할 수 있습니다.
교환 실행
교환 실행 모드에서 포지션을 열기 위한 거래 순서입니다. 다음 5개의 필드를 지정해야 합니다:
- 액션
- 심볼
- 볼륨
- 유형
- type_filling
또한 "매직" 및 "코멘트" 필드 값을 지정할 수 있습니다.
매입 포지션을 열기 위한 TRADE_ACTION_DEAL 거래 작업의 예:
#define EXPERT_MAGIC 123456 // MagicNumber of the expert |
매도 포지션을 열기 위한 TRADE_ACTION_DEAL 거래 작업의 예:
#define EXPERT_MAGIC 123456 // 엑스퍼트의 MagicNumber |
마감 포지션에 대한 TRADE_ACTION_DEAL 거래 작업의 예:
#define EXPERT_MAGIC 123456 // 엑스퍼트의 MagicNumber |
SL & TP 수정
StopLoss 및/또는 TakeProfit 가격 수준을 수정하기 위한 거래 주문. 다음 4개의 필드를 지정해야 합니다:
- 액션
- 심볼
- sl
- tp
- 포지션
열린 포지션의 솔실 중지 및 이익 취하기 값을 수정하기 위한 TRADE_ACTION_SLTP 거래 작업의 예:
#define EXPERT_MAGIC 123456 // 엑스퍼트의 MagicNumber |
보류 중인 주문
보류 중인 주문을 발주하기 위한 거래 주문 다음 11개 필드를 지정해야 합니다:
- 액션
- 심볼
- 볼륨
- 가격
- stoplimit
- sl
- tp
- 유형
- type_filling
- type_time
- 만료
또한 "매직" 및 "코멘트" 필드 값을 지정할 수 있습니다.
보류 중인 주문을 발주하기 위한 TRADE_ACTION_PENDING 거래 작업의 예:
#property description "Example of placing pending orders" |
보류 중인 주문 수정
보류 중인 주문의 가격을 수정하기 위한 거래 주문. 다음 7개의 필드를 지정해야 합니다:
- 액션
- 주문
- 가격
- sl
- tp
- type_time
- 만료
예시 - TRADE_ACTION_MODIFY 거래 작업 (보류 중인 주문의 가격 수준을 수정하기 위함):
#define EXPERT_MAGIC 123456 // 엑스퍼트의 MagicNumber |
보류 중인 주문 삭제
보류 중인 주문을 삭제하기 위한 거래 주문. 다음 두 개의 필드를 지정해야 합니다:
- 액션
- 주문
보류 중인 주문을 삭제하기 위한 TRADE_ACTION_REMOVE 거래 작업의 예:
#define EXPERT_MAGIC 123456 // 엑스퍼트의 MagicNumber
|
추가 참조