- Структура даты
- Структура входных параметров индикатора
- Структура исторических данных
- Структура стакана цен
- Структура торгового запроса
- Структура результата проверки торгового запроса
- Структура результата торгового запроса
- Структура торговой транзакции
- Структура для получения текущих цен
- Структуры экономического календаря
Структура торгового запроса (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 |
Комментарий к ордеру |
position |
Тикет позиции. Следует заполнять при изменении и закрытии позиции для ее однозначной идентификации. Как правило, соответствует тикету ордера, в результате которого позиция была открыта. |
position_by |
Тикет встречной позиции. Используется при закрытии позиции встречной — открытой по тому же инструменту, но в противоположном направлении. |
При модификации или закрытии позиции в системе хеджинга обязательно указывайте ее тикет (MqlTradeRequest::position). В системе неттинга тикет также можно указывать, однако идентификации позиции осуществляется по имени символа. |
Для отправки приказов на совершение торговых операций необходимо использовать функцию 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.
Пример торговой операции TRADE_ACTION_DEAL для открытия позиции Buy:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта |
Пример торговой операции TRADE_ACTION_DEAL для открытия позиции Sell:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта |
Пример торговой операции TRADE_ACTION_DEAL для закрытия позиций:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта |
SL & TP Modification
Торговый приказ на модификацию уровней StopLoss и/или TakeProfit. Требуется указание 4 полей:
- action
- symbol
- sl
- tp
- position
Пример торговой операции TRADE_ACTION_SLTP для изменения значений Stop Loss и Take Profit у открытой позиции:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта |
Pending Order
Торговый приказ на установку отложенного ордера. Требуется указание 11 полей:
- action
- symbol
- volume
- price
- stoplimit
- sl
- tp
- type
- type_filling
- type_time
- expiration
Можно также задать значения полей magic и comment.
Пример торговой операции TRADE_ACTION_PENDING для установки отложенного ордера:
#property description "Пример установки отложенных ордеров" |
Modify Pending Order
Торговый приказ на модификацию уровней цен отложенного ордера. Требуется указание 7 полей:
- action
- order
- price
- sl
- tp
- type_time
- expiration
Пример торговой операции TRADE_ACTION_MODIFY для модификации уровней цен отложенного ордера:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта |
Delete Pending Order
Торговый приказ на удаление отложенного ордера. Требуется указание 2 полей:
- action
- order
Пример торговой операции TRADE_ACTION_REMOVE для удаления отложенных ордеров:
#define EXPERT_MAGIC 123456 // MagicNumber эксперта
|
Смотри также