|
Структура торгового запроса (MqlTradeRequest)
Взаимодействие клиентского терминала и торгового сервера для проведения операций постановки ордеров производится посредством торговых запросов. Запрос представлен специальной предопределенной структурой MqlTradeRequest, которая содержит все поля, необходимые для заключения торговых сделок. Результат обработки запроса представлен структурой MqlTradeResult.
struct MqlTradeRequest |
Описание полей
Поле |
Описание |
action |
Тип торговой операции. Значение может быть одним из значений перечисления ENUM_TRADE_REQUEST_ACTIONS |
magic |
Идентификатор эксперта. Позволяет организовать аналитическую обработку торговых ордеров. Каждый эксперт может выставлять свой собственный уникальный идентификатор при отправке торгового запроса |
order |
Тикет ордера. Требуется для модификации отложенных ордеров |
symbol |
Имя торгового инструмента, по которому выставляется ордер. Не требуется при операциях модификации ордеров и закрытии позиций |
volume |
Запрашиваемый объем сделки в лотах. Реальное значение объема при открытии сделки будет зависеть от типа ордера по исполнению. |
price |
Цена, при достижении которой ордер должен быть исполнен. Для рыночных ордеров по инструментам с типом исполнения "Market Execution" (SYMBOL_TRADE_EXECUTION_MARKET), имеющих тип TRADE_ACTION_DEAL, указание цены не требуется |
stoplimit |
Цена, по которой будет выставлен отложенный Limit ордер, при достижении ценой значения price (это условие является обязательным). До этого момента отложенный ордер в торговую систему не выводится |
sl |
Цена, по которой сработает Stop Loss ордер при движении цены в неблагоприятном направлении |
tp |
Цена, по которой сработает Take Profit ордер при движении цены в благоприятном направлении |
deviation |
Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах |
type |
Тип ордера. Значение может быть одним из значений перечисления ENUM_ORDER_TYPE |
type_filling |
Тип ордера по исполнению. Значение может быть одним из значений ENUM_ORDER_TYPE_FILLING |
type_time |
Тип ордера по по истечению. Значение может быть одним из значений ENUM_ORDER_TYPE_TIME |
expiration |
Срок истечения отложенного ордера (для ордеров типа ORDER_TIME_SPECIFIED) |
comment |
Комментарий к ордеру |
Для отправки приказов на совершение торговых операций необходимо использовать функцию OrderSend(). Для каждой торговой операции необходимо указывать обязательные поля и можно заполнять опциональные поля. Всего предусмотрено семь вариантов отправки торгового запроса:
Request Execution
Торговый ордер на открытие позиции в режиме Request Execution (режим торговли по запросу текущих цен). Требуется указание 9 полей:
·action
·symbol
·volume
·price
·sl
·tp
·deviation
·type
·type_filling
Можно также задать значения полей magic и comment.
Instant Execution
Торговый ордер на открытие позиции в режиме Instant Execution (режим торговли по потоковым ценам). Требуется указание 9 полей:
·action
·symbol
·volume
·price
·sl
·tp
·deviation
·type
·type_filling
Можно также задать значения полей magic и comment.
Market Execution
Торговый ордер на открытие позиции в режиме Market Execution (режим исполнения торговых приказов по рынку). Требуется указание 5 полей:
·action
·symbol
·volume
·type
·type_filling
Можно также задать значения полей magic и comment.
Exchange Execution
Торговый ордер на открытие позиции в режиме Exchange Execution (биржевой режим исполнения торговых приказов). Требуется указание 5 полей:
·action
·symbol
·volume
·type
·type_filling
Можно также задать значения полей magic и comment.
SL & TP Modification
Торговый приказ на модификацию уровней StopLoss и/или TakeProfit. Требуется указание 4 полей:
·action
·symbol
·sl
·tp
Pending Order
Торговый приказ на установку отложенного ордера. Требуется указание 11 полей:
·action
·symbol
·volume
·price
·stoplimit
·sl
·tp
·type
·type_filling
·type_time
·expiration
Можно также задать значения полей magic и comment.
Modify Pending Order
Торговый приказ на модификацию уровней цен отложенного ордера. Требуется указание 7 полей:
·action
·order
·price
·sl
·tp
·type_time
·expiration
Delete Pending Order
Торговый приказ на удаление отложенного ордера. Требуется указание 2 полей:
·action
·order
Смотри также
Структуры и классы, Торговые функции, Свойства ордеров