Индикатор не работает на старших тайм фреймах - страница 2

 
Mihail Matkovskij:

Что Вы имеете в виду под перестраиванием?

Вызвать функцию инициализации и перерасчета индикатора.

пс. и про ChartRedraw не забывайте
 
Mihail Matkovskij:

Столкнулся с одной особенностью в MQL5. Собрался написать индикатор, который показывает старший тайм фрейм младшем или на текущем. Но когда в настройках я ставлю, к примеру, тайм фрейм H4, который старше текущего, Н1, то поведение программы не поддается объяснению. Ничего не работает. Я уже не знаю, баг это или я что-то не так делаю. Но, вроде, всё сделал правильно. Вот тестовый индикатор, который я написал для демонстрации данной проблемы:

Попробуйте как-то так:

   int calculated=BarsCalculated(handle);
   if(calculated<0)
     {
      //Print("Not all data ... (calculated=",calculated," bars). Error: ",GetLastError());
      ChartSetSymbolPeriod(ChartID(),Symbol(),Period());
      ChartRedraw();
      return(0);
     }
 
Aleksey Lebedev:

Попробуйте как-то так:

Вот спасибо! Теперь порядок.

Думал, что вызов ChartSetSymbolPeriod с одними и теми же символом и периодом ничего не даст (общее правило оптимизации программ), но помогло, чарт обновляется.
Причина обращения: