По истечении некоторого времени
При использовании в торговых системах отложенных ордеров часто возникает необходимость удаления устаревших, неисполненных, отложенных ордеров, т.е. таких отложенных ордеров, которые были открыты сравнительно давно.
Обозначим время, в течение которого можно ожидать исполнения отложенного ордера – ExistTimeP (в периодах длительности свечи на графике). Тогда следующие операторы позволяют удалить старые, неисполненные, отложенные ордера:
vars:
ExistTimeP(60);
........
//удалить старые отложенные ордера
//=====================================
for cnt = 1 to TotalTrades
{ // выберем ордера только для данной валюты
if OrderValue(cnt,VAL_SYMBOL)=Symbol then // инструмент совпадает?
{
if OrderValue(cnt,VAL_TYPE)>OP_SELL then // это отложенный ордер
{ // проверим время создания отложенного ордера
TimeTmp1=CurTime-OrderValue(cnt,VAL_OPENTIME);
if TimeTmp1 > ExistTimeP*Period*60 then
{ // удалить старый отложенный ордер
DeleteOrder(OrderValue(cnt,VAL_TICKET),Red);
exit;
};
};
}; // if OrderValue(cnt,VAL_SYMBOL)=Symbol
}; // for cnt = 1 to TotalTrades
//старые отложенные ордера удалены!!!
//=====================================
Алгоритм открытия ордеров Buy и Sell