Работа эксперта в реальной жизни

 
Вот столкнулся с проблемой во время онлайн-теста эксперта. Работал советник, работал, потом происходит обрыв связи на два-три часа (ночь, понятное дело никто не проследит что да как). Потом вновь происходит подключение. За это время советник не выполняет никакие действия (тики не приходят - он не работает,  функции init и deinit не вызываются). За время обрыва связи нарисовались два-три новых бара,  которые советник не обработал (не изменились текущие глобальные переменные).  Каким образом можно отследить такой момент обрыва?
Все-таки моменты вкл/выкл терминала ловятся намного легче (init/deinit)
 

Можно запустить скрипт в цикле, кот. будет анализировать состояние связи с заданной периодичностью и устанавливать глобальную переменную в случае обрыва, а также, записывать время обрыва и восстановления связи в файл, при необходимости. Советник же может анализировать эту переменную, и предпринимать необходимые действия, если зафиксирован обрыв связи.

 
Valmars:

Можно запустить скрипт в цикле, кот. будет анализировать состояние связи с заданной периодичностью и устанавливать глобальную переменную в случае обрыва, а также, записывать время обрыва и восстановления связи в файл, при необходимости. Советник же может анализировать эту переменную, и предпринимать необходимые действия, если зафиксирован обрыв связи.


Под глобальной переменной я имел в виду переменную, описанную в самом советнике, которая доступна всем функциям, хотя, конечно, можно завести и глобальную для терминала. Хотя постоянно работающий скрипт лично мне не очень нравится
 

Да эту функцию я знаю, конечно. Только вот как я ее вызову, если тики не приходят? Как я уже говорил,  нагружать терминал постоянно работаюшим скриптом я не хочу,  т. к. таких терминалов у меня работает до десяти штук.
 
Scriptong:

Да эту функцию я знаю, конечно. Только вот как я ее вызову, если тики не приходят? Как я уже говорил, нагружать терминал постоянно работаюшим скриптом я не хочу, т. к. таких терминалов у меня работает до десяти штук.

Вы не совсем правильно поняли, скрипт будет висеть на одном графике и запускаться, скажем, 10 раз в секунду. Он совсем не будет загружать процессор, даже при 10 запущенных терминалах.
 
Спасибо за помощь. Как говорится, утро вечера мудренее, и с утра пришло довольно изящное решение:

   if(TimeCurrent()-LastTick >= 60*Period())
init();
LastTick = TimeCurrent();
Переменная LastTick объявлена глобальной (для советника, не для терминала). Запоминаем время последнего тика. Если следующий тик пришел позже,  чем длительность текущего периода, установленного для графика,  то вызываем init, 
в которой обрабатываем пропущенные бары.
Причина обращения: