Удаление неисполненных отложенных ордеров

По истечении некоторого времени

 

При использовании в торговых системах отложенных ордеров часто возникает необходимость удаления устаревших, неисполненных, отложенных ордеров, т.е. таких отложенных ордеров, которые были открыты сравнительно давно.

Обозначим время, в течение которого можно ожидать исполнения отложенного ордера – 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