- Главное событие экспертов: OnTick
- Основные принципы и понятия: ордер, сделка, позиция
- Типы торговых операций
- Типы ордеров
- Режимы исполнения ордеров по цене и объемам
- Сроки действия отложенных ордеров
- Расчет залога для будущего ордера: OrderCalcMargin
- Оценка прибыли торговой операции: OrderCalcProfit
- Структура торгового запроса MqlTradeRequest
- Структура проверки запроса MqlTradeCheckResult
- Проверка корректности запроса: OrderCheck
- Результат отправки запроса: структура MqlTradeResult
- Отправка торгового запроса: OrderSend и OrderSendAsync
- Совершение покупки или продажи
- Модификация уровней Stop Loss и/или Take Profit позиции
- Трейлинг стоп
- Полное и частичное закрытие позиции
- Полное и частичное закрытие встречных позиций (хедж)
- Установка отложенного ордера
- Модификация отложенного ордера
- Удаление отложенного ордера
- Получение списка действующих ордеров
- Свойства ордеров (действующих и в истории)
- Функции для чтения свойств действующих ордеров
- Отбор ордеров по свойствам
- Получение списка позиций
- Свойства позиций
- Функции для чтения свойств позиций
- Свойства сделок
- Выборка ордеров и сделок из истории
- Функции для чтения свойств ордеров из истории
- Функции для чтения свойств сделок из истории
- Типы торговых транзакций
- Событие OnTradeTransaction
- Синхронные и асинхронные запросы
- Событие OnTrade
- Контроль за изменениями торгового окружения
- Особенности создания мультисимвольных экспертов
- Ограничения и преимущества экспертов
- Создание заготовки эксперта в Мастере MQL
Типы ордеров
Как известно, MetaTrader 5 поддерживает несколько типов ордеров: 2 рыночных — на покупку и продажу по текущей цене, — а также 6 отложенных с предопределенными уровнями активации выше и ниже рынка. Все эти типы доступны в MQL5 API и описаны элементами перечисления ENUM_ORDER_TYPE. Каким именно образом в программе можно создать ордер конкретного типа, мы рассмотрим позднее, а пока познакомимся с перечислением.
Идентификатор |
Описание |
---|---|
ORDER_TYPE_BUY |
Рыночный ордер на покупку |
ORDER_TYPE_SELL |
Рыночный ордер на продажу |
ORDER_TYPE_BUY_LIMIT |
Отложенный ордер Buy Limit |
ORDER_TYPE_SELL_LIMIT |
Отложенный ордер Sell Limit |
ORDER_TYPE_BUY_STOP |
Отложенный ордер Buy Stop |
ORDER_TYPE_SELL_STOP |
Отложенный ордер Sell Stop |
ORDER_TYPE_BUY_STOP_LIMIT |
Отложенный ордер Buy Limit будет выставлен по достижении ценой заданного верхнего уровня |
ORDER_TYPE_SELL_STOP_LIMIT |
Отложенный ордер Sell Limit будет выставлен по достижении ценой заданного нижнего уровня |
ORDER_TYPE_CLOSE_BY |
Ордер на закрытие одной позиции другой встречной позицией |
Последний элемент соответствует действию по закрытию встречных позиций: такая возможность существует только на счетах с хеджингом и для финансовых инструментов, в свойствах которых разрешены подобные операции (SYMBOL_ORDER_CLOSEBY).
Общие принципы активации отложенных ордеров может напомнить следующая картинка. На ней серым цветом показаны предполагаемые будущие движения цены, но в текущий момент времени, разумеется, не известно, какой прогноз окажется верным.
Схема активации отложенных ордеров
Отложенные ордера Buy Stop и Sell Stop работают по принципу пробоя уровня: для Buy Stop этот уровень должен располагаться выше текущей цены, а для Sell Stop — ниже. Иными словами, на заданном уровне предполагается совершение покупки или продажи в расчете на дальнейшую торговлю по тренду.
Buy Limit и Sell Limit реализуют стратегию отбоя от уровня, причем в этом случае цена активации покупки находится ниже текущей цены, а цена продажи — выше. Это подразумевает смену тренда или колебания в коридоре. На вышеприведенной схеме одни и те же верхний (Higher Price) и нижний (Lower Price) уровни активации отложенных ордеров используются для иллюстрации как пробоя, так и отскока.
Отложенные ордера можно ставить на текущую цену — они при этом будут с большой вероятностью сразу же исполнены. Кроме того, такой прием с лимитными ордерами гарантирует цену сделки, не хуже запрошенной, в отличие от рыночного ордера.
Ордера типов Buy Stop Limit и Sell Stop Limit в результате своей активации не входят в рынок, а устанавливают, соответственно, отложенные ордера Buy Limit или Sell Limit на неких дополнительных уровнях, заданных в исходном приказе.
Для биржевых инструментов лимитные ордера (Buy Limit, Sell Limit), как правило, напрямую выводятся в стакан и видны остальным участникам рынка.
В отличие от этого, Stop и Stop Limit ордера (Buy Stop, Sell Stop, Buy Stop Limit и Sell Stop Limit) не выводятся во внешнюю торговую систему напрямую. До достижения стоп-цены данные типы ордеров обрабатываются внутри платформы MetaTrader 5. При достижении стоп-цены, указанной в Buy Stop или Sell Stop ордере, выполняется соответствующая рыночная операция. При достижении стоп-цены, указанной в Buy Stop Limit или Sell Stop Limit ордере, выставляется соответствующая лимитная заявка.
В режиме биржевого исполнения цена, указываемая при выставлении лимитных ордеров, не проверяется. Ее можно указать выше текущей цены Ask (для ордеров на покупку) и ниже цены Bid (для ордеров на продажу). При выставлении ордера с такой ценой он практически сразу срабатывает и превращается в рыночный.
Следует учесть, что не все типы ордеров могут быть разрешены для конкретного финансового инструмента: свойство SYMBOL_ORDER_MODE описывает флаги разрешенных типов ордеров.