Мы уже знаем, как можно выставить отложенный ордер. Для этого надо использовать функцию OrderSend(). Также мыумеем изменять параметры отложенных ордеров спомощью функции OrderModify().
В этом выпуске расскажем отом, как можно удалить отложенный ордер. Это можно сделать спомощью функции OrderDelete().
bool OrderDelete(int ticket)
Эта функция удаляет отложенный ордер стикером ticket. Функция возвращает true вслучае успешного удаления иfalse вслучае возникновения ошибки. Код ошибки можно получить, вызвав функцию GetLastError().
Применение функции OrderDelete() рассмотрим наследующем примере:
Предположим, что наш эксперт покакой-то логике (небудем здесь вдаваться вподробности) выставляет поодному инструменту сразу два отложенных ордера Buy Limit иSell Limit. Наша задача если один изордеров сработал, тоудалить оставшийся отложенный ордер.
Предположим, что поданному инструменту работает только наш эксперт.
Пусть вмомент выставления каждого отложенного ордера было задано магическое число, одинаковое для каждого отложенного ордера. Предположим, что это магическое число хранится впеременной MyMagicNumber.
// просмотрим все открытые позиции и выставленные ордера
int pos;
for(pos=0; posOP_SELL))
{
// ордер найден - удалим его
if (OrderDelete(OrderTicket()))
{
Print("Ордер удален");
}
else
{
Print("Ошибка ", GetLastError(), " при удалении ордера");
}
}
}
}
// выйти из цикла
break;
}
}
}
Перейти к главе «
функция OrderClose».