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

ak_zigzag royal pointer.mq5

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

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

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

О программе

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

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

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

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

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

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

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

extern int ExtDepth=100;
extern int ExtDeviation=75;
extern int ExtBackstep=15;

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[shi

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

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

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

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

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

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

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