Ошибка при применении шаблона

 

Доброго всем времени. Написан советник для ручной торговли, который должен применять шаблон на каждом новом баре. Функция определения нового бара взята от сюда - https://www.mql5.com/ru/articles/159.

Код действия в OnTick():

(глобально) input bool auto_temp = true;
if(current_chart.isNewBar(new_time) && auto_temp){ Sleep(20); OnTimer__(); };

Код OnTimer__():

(глобально) input string tpl = "exp_.tpl";
void OnTimer__(){
 
  int err = GetLastError();
  if(auto_temp){
  if(ChartApplyTemplate(ChartID(),tpl))
  {
   Print("The template "+tpl+" applied successfully");
  }
else
   {
   Print("Failed to apply "+tpl+" , error code ",err);
   }};
         
}

Так вот этот советник может сутками висеть на графике и ничего, а может на каждом баре убираться с графика с сообщениями:

uninit reason 0

shutdown by timeout

Может кто подсказать в чем может быть проблема?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
В момент применения шаблона с графика убирается все, что есть, советник в том числе. Это сродни тому, что сидеть на ветке, пилить ее, а потом удивляться, что на лбу шишка появилась. Пилить нужно ту, ветку, на которой не сидишь. Меняйте шаблон на другом чарте, а не на текущем.
 
Ihor Herasko #:
В момент применения шаблона с графика убирается все, что есть, советник в том числе. Это сродни тому, что сидеть на ветке, пилить ее, а потом удивляться, что на лбу шишка появилась. Пилить нужно ту, ветку, на которой не сидишь. Меняйте шаблон на другом чарте, а не на текущем.
Спасибо, помогло.