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

zigzagfibonacci.mq5

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

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

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

О программе

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

Расчёт выполняется по данным цены инструмента и текущего таймфрейма графика. Индикатор использует один видимый буфер для отрисовки линии и один вспомогательный буфер для промежуточных значений. При изменении положения двух последних точек разворота объект Фибоначчи удаляется и создаётся заново по новым координатам.

Индикатор не выполняет торговых операций и не выводит сигналов на покупку или продажу. Его назначение — визуальная разметка графика: линия по экстремумам и уровни Фибоначчи между двумя последними точками.

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

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

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

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

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

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

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

  int deinit() 
  {
   ObjectDelete("Fibo");
   return 0;
  }

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;
     

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

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

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

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

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

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

Стоимость полного кода
243,50₽ ≈ $2.98