Проблема с функцией Sleep();

 

В общем всё хорошо работает до одного момента... окончание дня

У меня стоят большие задержки, более 24 часов...

Но Sleep принудительно прерывается при окончании суток по терминалу...

Как это обойти? 

 
Покажите как вы вызываете Sleep(), какие число там стоит?
 
Dmitry Fedoseev:
Покажите как вы вызываете Sleep(), какие число там стоит?
Sleep (DelayHours*3600000);
 
BaTTLeBLooM:
Sleep (DelayHours*3600000);
Насчет слипа не в курсе, а таймер пробовали? Конечно, придется немного алгоритм переделать. 
 
Dmitry Fedoseev:
Покажите как вы вызываете Sleep(), какие число там стоит?

я понимаю, что звучит странно, но при оптимизации советника, всё что выходит за рамки суток имеет одинаковые значения...

вообщем смысл такой

жду триггер и вхожу по истечения n часов... но это n может быть сколько угодно... может даже не на этой неделе...

не цикл же мне делать со слипом, чтоб добиться нужного эффекта

у меня получается всё что выходит за рамки открывается в одно и тоже время в 23 часа по терминалу... 

 
Alexey Volchanskiy:
Насчет слипа не в курсе, а таймер пробовали? Конечно, придется немного алгоритм переделать. 
как пишется? я не в курсе про него... про слип то еле вспомнил...
 
BaTTLeBLooM:

я понимаю, что звучит странно, но при оптимизации советника, всё что выходит за рамки суток имеет одинаковые значения...

вообщем смысл такой

жду триггер и вхожу по истечения n часов... но это n может быть сколько угодно... может даже не на этой неделе...

не цикл же мне делать со слипом, чтоб добиться нужного эффекта

у меня получается всё что выходит за рамки открывается в одно и тоже время в 23 часа по терминалу... 

В тестере Sleep не работает.
 
Andrey Barinov:
В тестере Sleep не работает.
понял спасибо, значит буду делать цикл со слипом, раз тестер такой привередливый
 
BaTTLeBLooM:
понял спасибо, значит буду делать цикл со слипом, раз тестер такой привередливый
Зачем вам Sleep? Работайте по времени. Засекли время события datetime eventtime=TimeCurrent() или TimeLocal() и потом просто ждите когда время станет TimeLocal()>=eventtime+SleepTime и действуйте.
 
Сделайте переменную, в нее засекайте время начала отсчета. В начале функции OnTick() проверяйте сколько времени прошло, если меньше суток, то return. 
 
Andrey Barinov:
Зачем вам Sleep? Работайте по времени. Засекли время события datetime eventtime=TimeCurrent() или TimeLocal() и потом просто ждите когда время станет TimeLocal()>=eventtime+SleepTime и действуйте.
ну похоже так и придётся... даже цикл со слипом не сработал ))) не хочет и всё )))
Причина обращения: