Как сделать чтобы индикатор отображался только на последних N барах?

 

Собственно  есть индикатор FATL, нужно ограничить область его отображения (и расчета) последними N барами.

Примерно так, как это было сделано в MT4. Фатлы для MT4 и MT5 прикрепил.

Подскажите, плиз, как это сделать.  Может уже есть индикатор  где это реализовано.

Заранее спасибо. 

Файлы:
FATL.mq5  7 kb
FATL.mq4  3 kb
 

Посмотрите статью Николая Косицина - Практическая реализация цифровых фильтров на MQL5 для начинающих

Там рассмотрены практически все цифровые фильтры.


 

Эту статью я уже видел  собственно на ее основе сделал все ATCF индикаторы.

Но там нет ни слова о том, что меня интересует. Там индикаторы строятся для всех баров.

Оставим цифровые фильтры в покое. Поставим вопрос по другому: как сделать так, чтобы SMA строилась только для последних 300 баров? 

Практическая реализация цифровых фильтров на MQL5 для начинающих
Практическая реализация цифровых фильтров на MQL5 для начинающих
  • 2010.03.19
  • Nikolay Kositsin
  • www.mql5.com
Идее цифровой фильтрации сигналов посвящаются достаточно объёмные темы обсуждения на форумах по построению торговых систем. В этой статье автор знакомит с процессом превращения кода более простого индикатора SMA из своей статьи "Пользовательские индикаторы в MQL5 для начинающих" в код гораздо более сложного универсального цифрового фильтра. В ней также изложены простейшие приёмы замены текста в коде и методика получения простейших навыков по исправлению ошибок программирования.
 
Piton:

Эту статью я уже видел  собственно на ее основе сделал все ATCF индикаторы.

Но там нет ни слова о том, что меня интересует. Там индикаторы строятся для всех баров.

Оставим цифровые фильтры в покое. Поставим вопрос по другому: как сделать так, чтобы SMA строилась только для последних 300 баров? 

так же как и в четверке, например

for(bar=first; bar<300; bar++)
     {
      //---- 
      FATL=0.4360409450*price[bar-0]
           + 0.3658689069 * price[bar - 1]
           + 0.2460452079 * price[bar - 2]
           + 0.1104506886 * price[bar - 3]
           - 0.0054034585 * price[bar - 4]
           - 0.0760367731 * price[bar - 5]
           - 0.0933058722 * price[bar - 6]
           - 0.0670110374 * price[bar - 7]
           - 0.0190795053 * price[bar - 8]
           + 0.0259609206 * price[bar - 9]
           + 0.0502044896 * price[bar - 10]
           + 0.0477818607 * price[bar - 11]
           + 0.0249252327 * price[bar - 12]
           - 0.0047706151 * price[bar - 13]
           - 0.0272432537 * price[bar - 14]
           - 0.0338917071 * price[bar - 15]
           - 0.0244141482 * price[bar - 16]
           - 0.0055774838 * price[bar - 17]
           + 0.0128149838 * price[bar - 18]
           + 0.0226522218 * price[bar - 19]
           + 0.0208778257 * price[bar - 20]
           + 0.0100299086 * price[bar - 21]
           - 0.0036771622 * price[bar - 22]
           - 0.0136744850 * price[bar - 23]
           - 0.0160483392 * price[bar - 24]
           - 0.0108597376 * price[bar - 25]
           - 0.0016060704 * price[bar - 26]
           + 0.0069480557 * price[bar - 27]
           + 0.0110573605 * price[bar - 28]
           + 0.0095711419 * price[bar - 29]
           + 0.0040444064 * price[bar - 30]
           - 0.0023824623 * price[bar - 31]
           - 0.0067093714 * price[bar - 32]
           - 0.0072003400 * price[bar - 33]
           - 0.0047717710 * price[bar - 34]
           + 0.0005541115 * price[bar - 35]
           + 0.0007860160 * price[bar - 36]
           + 0.0130129076 * price[bar - 37]
           + 0.0040364019 * price[bar - 38];

      //---- Инициализация ячейки индикаторного буфера полученным значением FATL
      ExtLineBuffer[bar]=FATL;
     }


 
sergey1294:

так же как и в четверке, например


После внесения подобных изменений индикатор вообще ничего не отображает. -:)
 
Piton:
конечно в пятерке есть с этим трудности. Попробуйте перевернуть массив.
 
Piton:

Собственно  есть индикатор FATL, нужно ограничить область его отображения (и расчета) последними N барами.

Примерно так, как это было сделано в MT4. Фатлы для MT4 и MT5 прикрепил.

Подскажите, плиз, как это сделать.  Может уже есть индикатор  где это реализовано.

Заранее спасибо. 

 

Посмотрите как это реализовано в этом индикаторе https://www.mql5.com/ru/code/249

Линейно регрессионный канал
Линейно регрессионный канал
  • голосов: 8
  • 2011.01.07
  • Vladimir Mikhailov
  • www.mql5.com
Индикатор строит канал по уравнению линейной регрессии y=b+a*x.
Причина обращения: