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

zigzag arrow.mq5

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

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

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

О программе

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

Для визуализации используются два буфера данных: первый рисует стрелки вверх для обозначения минимумов цвета Lime, второй — стрелки вниз для максимумов цвета Red. В процессе расчёта значения, не соответствующие критериям значимости, обнуляются, что обеспечивает чёткое отображение структуры цены.

Индикатор обладает тремя настраиваемыми параметрами, определяющими глубину анализа, допустимое отклонение и количество шагов обратной проверки. Это позволяет пользователю адаптировать чувствительность ZigZag под свои торговые задачи.

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

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

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

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_width1 1
#property indicator_color2 Red
#property indicator_width2 1

extern int ExtDepth=12;
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[shift])

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

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

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

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

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

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

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