← К каталогу
Исходный код · ID 889

ak_zigzag noble pointer.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный индикатор реализует алгоритм ZigZag на графике MetaTrader. Он анализирует ценовые данные и выявляет значимые максимумы и минимумы цены, отображая их в виде стрелок двух цветов на графике окна индикатора. Параметры глубины, отклонения и возврата позволяют настраивать чувствительность и точность построения.

При расчёте индикатор использует два буфера: один для отметки минимумов цены, другой для максимумов. Для каждого сдвига в пределах заданной глубины определяются экстремальные значения Low и High, после чего применяются фильтрация по отклонению и обрезка по заданному числу шагов назад. В финальной фазе выполняется дополнительная очистка буферов, оставляя только наиболее выраженные точки.

Индикатор отрисовывает стрелки (код 233 для минимумов, 234 для максимумов) с заданным цветом и толщиной линии. Краткое имя индикатора формируется из текущих значений параметров и отображается в окне графика.

Настройки программы

НастройкаОписание
ExtDepth Определяет глубину поиска экстремумов — количество баров, на которые просматривается диапазон ценовых данных для нахождения минимумов и максимумов.
ExtDeviation Задаёт минимальное отклонение цены в пунктах, при котором точка считается значимым экстремумом. Если разница между ценой и экстремумом меньше этого значения, точка отбрасывается.
ExtBackstep Задаёт количество шагов назад, на которых выполняется фильтрация уже найденных экстремумов. Позволяет устранить промежуточные точки, не являющиеся значимыми пиками или впадинами.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGray
#property indicator_width1 2
#property indicator_color2 DarkGray
#property indicator_width2 2

extern int ExtDepth=60;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

double ExtMapBuffer[];
double ExtMapBuffer2[];

int init()
  {
      // код доступен только после оплаты
   }

int start()
  {
      // код доступен только после оплаты
   }
   int    shift, back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;

   for(shift=Bars-ExtDepth; shift>=0; shift--)
     {
      val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer[shift+back];
               if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0; 
              }
           }
        } 
      ExtMapBuffer[shift]=val;

      val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];
      if(val==lasthigh) val=0.0;
      else 
        {
         lasthigh=val;
         if((val-High[sh

Показано первые 50% кода (символов: 2029)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
202,90₽ ≈ $2.48