Что этот кусок кода делает ?

 

Добрый день !

подскажите, плиз, что этот кусок кода делает:


for ( int z=0;z<HistoryTotal();z++)

{
if (OrderSelect (z,SELECT_BY_POS, MODE_HISTORY))
datetime oct=OrderCloseTime();
}
if(CurTime()-oct<3600) return(0);
 
Stells писал (а) >>

Добрый день !

подскажите, плиз, что этот кусок кода делает:


for ( int z=0;z<HistoryTotal();z++)

{
if (OrderSelect (z,SELECT_BY_POS, MODE_HISTORY))
datetime oct=OrderCloseTime();
}
if(CurTime()-oct<3600) return(0);

По ходу не позволяет ставить ордера(стопы или еще что) раньше чем через час после закрытия последней открытой из закрытых сделки.

Кривой код.

Кстати, можно переписать так, будет работать

if (OrderSelect (OrdersHistoryTotal() - 1, SELECT_BY_POS, MODE_HISTORY))
{
   if(CurTime() - OrderCloseTime() < 3600) return(0);
}
 

По идее, перед ним должно следовать присвоение:

HistoryTotal = OrdersHistoryTotal()


Тогда происходит выборка всех ордеров из закладки "История счета" и время закрытия последнего найденного из них (заметьте, не обязательно последний закрытый) присваивается переменной oct. Далее, если после закрытия этого последнего ордера прошло не более часа, то происходит выход из текущей функции, может быть даже из start.

Вобщем, правильно работать этот код будет только в случае, если в закладке "История счета" последняя закрытая позиция является последней в списке. 

Если резюмировать, то этот код не дает производить некие действия чаще, чем 1 раз в час (скорее всего не дает открывать сделки одного раза в час).

 
Scriptong писал (а) >>

По идее, перед ним должно следовать присвоение:


Тогда происходит выборка всех ордеров из закладки "История счета" и время закрытия последнего найденного из них (заметьте, не обязательно последний закрытый) присваивается переменной oct. Далее, если после закрытия этого последнего ордера прошло не более часа, то происходит выход из текущей функции, может быть даже из start.

Вобщем, правильно работать этот код будет только в случае, если в закладке "История счета" последняя закрытая позиция является последней в списке.

Если резюмировать, то этот код не дает производить некие действия чаще, чем 1 раз в час (скорее всего не дает открывать сделки одного раза в час).

Присвоения нет, выход-да из start.

 
Stells писал (а) >>

Присвоения нет, выход-да из start.

Я забыл, это старое название OrdersHistoryTotal()

Причина обращения: