Индикатор плотности экстремумов с фильтром по ATR

MQL5 Indicators

Job finished

Execution time 5 days

Specification


Плотность - среднее расстояние  между экстремумами на определенной глубине истории.
Рассчитывается, как глубина исследуемой истории в барах делённая на количество экстремумов в ней. 
Экстремумы - вершины стандартного ZZ. 

Фильтр по ATR убирает из расчетов как экстремумы, так и бары истории
не попавшие в его диапазон.
Диапазон ATR  т.е.  ARTmin<ATR<ATRmax. 
Таймфрейм для ATR свой, независимый от ТФ индикатора

Пользовательские настройки индикатора:

Bars  -глубина анализа
ATRmax -верх порог
ATRmin -ниж порог
ATR_tf -АТР_тф


Пример нахождения плотности

int OnInit()

    handle2_AZ=iCustom(A,Z_Tf_Den,"Examples\\ZigZag",12,5,3);  


void OnTick()

      if(!CopyBufferAsSeries(handle2_AZ,0,0,NBars,true,ZZ_ASum)) return;
      ArrayResize(ZZ_ASum,NBars);  

   int nExt[];int j=0,N_ext=0;
   int x=0;
   ArrayResize(nExt,NBars);ArrayInitialize(nExt,0);//создаем массив счетчика экстремумов 

   for (int i=NBars-1;i>=0;i--)   //проверяем значения зигзага на NBars барах и ищем наш экстремум 
             {
      if ( NBars!=0)    { x++; }                                                   
      if (ZZ_ASum[i]!=0) { nExt[j]=nExt[j]+1;}
             } 
    N_ext=ArrayResize(nExt,j+1);
     double Sum=0;
     for (int p=0;p<N_ext;p++){Sum=Sum+nExt[p];}  //считаем сумму
     if (Sum!=0)Sum=x/Sum;                      // результат в Sum

     Dens=Sum;                               //Выводим результат

 

 

Responded

1
Developer 1
Rating
(807)
Projects
1382
72%
Arbitration
113
29% / 48%
Overdue
343
25%
Loaded

Project information

Budget
25 USD
For the developer
22.5 - 22.5 USD
Deadline
from 1 to 3 day(s)