Ошибка в тестере стратегий. - страница 4

 
Aleksandr Dziuba #:

Индикаторы при одиночном не визуальном тесте не получают событие Calculate, не пересчитываются и находятся на уровне инициализации.

Ничего не знаю про индикаторы. Возможно, дело в отсутствии tester_everytick_calculate.

 
fxsaber #:

Ничего не знаю про индикаторы. Возможно, дело в отсутствии tester_everytick_calculate.

Понятна проблема. Для того что бы в не визуальном прогоне индикаторы пересчитывались необходимо копировать значение буфера индикатора. В противном случает они не пересчитываются. 


Проблема решена.

Всем спасибо за помощь. 

Ошибки нет. 

Файлы:
test.mq5  4 kb
 

Конечно не мне судить замысел разработчиков, но наверное стоило бы пересчитывать индикаторы при оптимизации  на запрос функции. 

  bars_high  = BarsCalculated(tb5handle); также ка и на запрос от функции  

  int copied=CopyBuffer(tb5handle,1,1,2,tb5max);

  Вы посмотрите сколько мы с Вами этот вопрос разбирали. 

  По умолчанию ( я считаю нужно индикаторы пересчитывать.), а то получается не код, а какая то заплатка. 

  int copied=CopyBuffer(tb5handle,1,1,2,tb5max);

   if(copied<=0)

     {

      Print("Ошибка копирования буфера tb5max");

      return(false);

     }

//--- Проверяем прошел ли пересчет баров на одном из  индикаторов для того что бы скопировать буферы остальных.

   bars_high  = BarsCalculated(tb5handle);

   if(bars_high ==  previousbars)

      return(false);