Обсуждение статьи "Создание тиковых индикаторов" - страница 2

 

При изменении периода графика происходит изменение размера динамических массивов BidBuffer[] и AskBuffer[], связанных с индикаторными буферами. После этого массивы оказываются заполнены "случайными" значениями, которые отличаются от тех значений, которые былы занесены ранее; они также отличаются от значения 0, для которого указано отсутствие отрисовки. Поэтому каждый раз перед заполнением массивов, следует их инициализировать значением 0 (как написал denkir):

if(prev_calculated==0)
  {
   ArrayInitialize(BidBuffer,0);
   ArrayInitialize(AskBuffer,0);

Прилагаю исправленный вариант индикатора.

Файлы:
 

Спасибо!
Очень интересно. В tickcandels возможно тоже надо добавить   

   if(prev_calculated==0)
     {
      //*************
      ArrayInitialize(TicksBuffer,0);
      ArrayInitialize(OpenBuffer,0);
      ArrayInitialize(HighBuffer,0);
      ArrayInitialize(LowBuffer,0);
      ArrayInitialize(CloseBuffer,0);
      //*************
 

Добрый день!

Спасибо за статью и коды. Скажите, пожалуйста, почему получается так.

Беру ваш тиковый график, без изменений компилирую и вставляю на EURUSD M1. Внизу открывается окно, меняются значения ask и bid белым цветом (в левом верхнем углу), а график внизу из красной и синей полос не появляется. 

Затем я отодвигаю график влево, достаточно, чтобы не было видно текущей свечи вверху и графики внизу появляются. Возвращаю вправо - вверху видно текущую свечу, но нет графиков внизу. 

 
Увидел выше ссылку на исправленный индикатор. Скачал, спасибо, всё работает ) 
Причина обращения: