Подскажите что не так с циклом в индикаторе

 

В таком виде в индикаторе уровни буфера BufLev[i] не сразу отрисовываются в подвале,
а на каждом тике перерисовываются слева направо пока не установятся в нужное положение от точки до точки.
Хотя кривая Buff[i] отрисовывается сразу по нужной истории.


   datetime DateStart = D'2022.01.01 00:00:00';
   int i,bars = iBarShift(NULL,0,DateStart);
   for(i=0; i<=bars; i++)
      {
      Buff[i]=...........;  
      if(Buff[i+2]>Buff[i+1] && Buff[i+2]>Buff[i+3]) BufLev[i]=Buff[i+2];
      if(BufLev[i]==Buff[i+2] && BufLev[i]!=EMPTY_VALUE && BufLev[i+3]==EMPTY_VALUE) BufLev[i+3]=BufLev[i];
         BufLev[i]=BufLev[i+1];
      }
 
Это мт5? ArraySetAsSeries для буферов делали?
 
Yevhenii Levchenko #:
Это мт5? ArraySetAsSeries для буферов делали?

Это мт4 требуется и ветка так же для мт4
Суть не в перевороте расчёта,
а происходит пересчёт буфера на каждом тике
и пока линии не встанут ровно как положено, идёт перерисовка.

 
forex2030 #:

Это мт4 требуется и ветка так же для мт4
Суть не в перевороте расчёта,
а происходит пересчёт буфера на каждом тике
и пока линии не встанут ровно как положено, идёт перерисовка.

Ясненько...

 

Хорошо, спрошу по другому
Как искать максимальные и минимальные вершины кривой подвального индикатора?


 

Тут бы начать с того, что развернуть цикл. Иначе ведь получается классический рисующий индикатор. То есть для начала попробуйте вот так:

   datetime DateStart = D'2022.01.01 00:00:00';
   int bars = iBarShift(NULL,0,DateStart);
   for(int i = bars; i >= 0; --i)

А потом, если проблемы останутся, можно искать уже их пути решения.

 
Рассчитали только Buff[i], а пытаетесь взять из буфера i+1.
 
forex2030 #:

Хорошо, спрошу по другому
Как искать максимальные и минимальные вершины кривой подвального индикатора?


Вот

Работа по Накоплению/Распределению и что из этого можно сделать
Работа по Накоплению/Распределению и что из этого можно сделать
  • www.mql5.com
Индикатор Накопления/Распределения A/D имеет одно интересное свойство - пробитие трендовой линии, построенной на графике данного индикатора с определённой долей вероятности говорит нам о скором пробое линии тренда на графике цены. Данная статья будет полезна и интересна людям, только начинающим программировать на MQL4, поэтому я постарался изложить всё в наиболее доступной для понимания форме и использовать самые простые конструкции построения кода.
 
forex2030 #:

Хорошо, спрошу по другому
Как искать максимальные и минимальные вершины кривой подвального индикатора?


во первых можно поискать в "статьях" - помниться была статья а-ля "пишем универсальный зигзаг". Там в частности про поиск экстремумов осциляторов. Сразу с кодом 

или просто: исходные данные (осциллятор) фильтруются, сглаживаются, опционально сдвигаются и плюс-минус допуск/отклонение. То что ниже - кандидаты в нижние экстремумы, что выше в верхние. 

серым - а-ля исходные данные после фильтра и усреднения +- envelop. Красным - зигзаг разметивший минимумы/максимумы кривой

 
Может есть подвальный индикатор с уровнями по пикам, хотя бы подсмотреть как оформлены буферы уровней
 
forex2030 #:
Может есть подвальный индикатор с уровнями по пикам, хотя бы подсмотреть как оформлены буферы уровней

Я вам, выше ссылку на статью давал.

Наверное это то, что вы ищете.