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

follow_alert.mq5

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

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

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

О программе

Индикатор реализует логику ZigZag для MetaTrader 5, отображая на графике значимые минимумы и максимумы цены в виде стрелок двух цветов. Зелёные стрелки отмечают подтверждённые минимумы, красные — подтверждённые максимумы. Расчёт ведётся на основе трёх настраиваемых параметров: глубины поиска, допустимого отклонения и количества возвратов.

Ключевая особенность индикатора — отслеживание изменения направления ZigZag. При подтверждении нового экстремума и смене тренда вызывается функция Alert(), отправляющая уведомление с указанием текущего таймфрейма и символа. Также индикатор ведёт учёт позиций предыдущего и последнего экстремумов для корректного определения разворота.

В исходном коде присутствуют закомментированные блоки, предназначенные для создания объекта Фибоначчи между экстремумами, однако они в настоящее время не активны. Индикатор использует два буфера для отрисовки и работает в основном окне графика.

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

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

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

#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=100;
extern int ExtDeviation=75;
extern int ExtBackstep=15;

double ExtMapBuffer[];
double ExtMapBuffer2[];
int OldLastZigZag, OldPreviousZigZag;

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])>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer2[shift+back];
               if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; 
              } 
           }
        }
      ExtMapBuffer2[shift]=val;
     }

   lasthigh=-1; lasthighpos=

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

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

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

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

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

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

Стоимость полного кода
267,30₽ ≈ $3.27