Модификация отложенных ордеров несколько отличается от модификации рыночных.
Существенное отличие состоит в том, что возможно изменить заявленную цену самого
ордера. Обязательно соблюдение правил, ограничивающих положение отложенного
ордера относительно рыночной цены и стоп-приказов ордера относительно заявленной
цены ордера (см. Характеристики ордеров и Требования и ограничения торговых
операций). При этом все характеристики отложенного ордера оцениваются как вновь
заявленные, независимо от предыдущей истории событий, связанных с этим ордером.
Например, имеется отложенный ордер BuyStop = 1.2030, имеющий StopLoss = 1.2025 и
TakeProfit = 1.2035. Минимально допустимая дистанция установлена брокером в размере
5 пунктов. Нетрудно заметить, что стоп-приказы ордера стоят на допустимой границе,
поэтому любая модификация заявленной цены открытия ордера повлечёт обязательную
модификацию по крайней мере одного из стоп-приказов. Если же будет сформирован
торговый приказ, в соответствии с которым предполагается изменить заявленную цену
ордера, а значения стоп-приказов оставить без изменения, то такой торговый приказ будет
признан клиентским терминалом как ошибочный и не будет отправлен на сервер для
исполнения. Например, если в торговом приказе указаны значения BuyStop = 1. 2028,
StopLoss = 1.2025 и TakeProfit = 1.2035, то этот торговый приказ является ошибочным,
несмотря на то, что значения стоп-приказов не изменились - в данном случае нарушено
правило соблюдения минимальной дистанции между заявленной ценой открытия ордера и
ценой одного из стоп-приказов (см. Требования и ограничения торговых операций).
Посмотрим, как может выглядеть скрипт, модифицирующий отложенный ордер для
приближения заявленной цены ордера к рыночной цене на некоторое заданное
расстояние. Зададим расстояние 10 пунктов. Для указания программе ордера,
назначенного к модификации (в окне может находиться несколько отложенных ордеров),
используем цену прикрепления скрипта в окно финансового инструмента.
Пример простого скрипта, модифицирующего отложенный ордер,
заявленная цена которого находится ближе к месту прикрепления
скрипта, чем цены других отложенных ордеров (modifyorderprice.mq4).
//--------------------------------------------------------------------
// modifyorderprice.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
328