Почему Low[0] ( и High[0] тоже) не обновляются?

 

Есть функция:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

bool TrackingOrder(int ticket)
{
OrderSelect(ticket,SELECT_BY_TICKET);
while (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("Следим. OrderType=",OrderType()," ticket=",ticket," ActiveLevel=",ActiveLevel);
if (OrderType()==OP_BUYSTOP)
{Print("Вошли BUYSTOP ",Low[0]," <= ",ActiveLevel," || ",Low[1]," <= ",ActiveLevel);
if (Low[0]<=ActiveLevel || Low[1]<=ActiveLevel) {if (true!=OrderDelete(ticket)) Print("Ошибка удаления-",GetLastError()); break;}
}
if (OrderType()==OP_SELLSTOP)
{Print("Вошли SELLSTOP ",High[0]," >= ",ActiveLevel," || ",High[1]," >= ",ActiveLevel);
if (High[0]>=ActiveLevel || High[1]>=ActiveLevel) {if (true!=OrderDelete(ticket)) Print("Ошибка удаления-",GetLastError()); break;}
}
Sleep(1000);
}
if (OrderType()==OP_BUY || OrderType()==OP_SELL) Sleep(60000);
return(true);
}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

и есть проблема: после захода в цикл while значения Low и High не обновляются несмотря на приход новых тиков и обновления на графике значений Хай и Лоу последний свечи! Кто может сказать почему?

 
Есть такая функция - RefreshRates()
 

Странная логика, как на мой взгляд, но это действует. Scriptong - большое СПАСИБО.

 
Ничего странного. Надо же таймсериям как-то обновляться, а вы не возвращаете управление терминалу, чтобы он провел обновление. Сами же они обновить себя не могут.
 
Scriptong писал (а) >>
Ничего странного. Надо же таймсериям как-то обновляться, а вы не возвращаете управление терминалу, чтобы он провел обновление. Сами же они обновить себя не могут.

Понял, спасибо.