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

zigzag mt4 source code @fundedmillionairess.mq5

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

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

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

О программе

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

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

НастройкаОписание
Depth (InpDepth) Глубина — Задаёт количество баров, в пределах которых ищутся экстремумы (минимумы и максимумы) цены.
Deviation (InpDeviation) Отклонение — Определяет допустимое отклонение цены в пунктах для фильтрации незначительных колебаний при поиске экстремумов.
Backstep (InpBackstep) Шаг назад — Задаёт количество баров назад, в которых происходит очистка предыдущих кандидатов в экстремумы при обнаружении нового.
Получить полный код

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

#property strict

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1  clrGoldenrod
#property indicator_color2  clrDodgerBlue
#property indicator_color3  Red
#property indicator_width1  1
#property indicator_width2  2
#property indicator_width3  3

input int InpDepth         = 12;    // Depth
input int InpDeviation     = 5;     // Deviation
input int InpBackstep      = 3;     // Backstep

double ExtZigzagBuffer[];
double ExtHighBuffer[];
double ExtLowBuffer[];
double BuyBuffer[];
double SellBuffer[];

int    ExtLevel=3; // recounting's depth of extremums

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

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
      // код доступен только после оплаты
   }
   int    i, limit, counterZ, whatlookfor = 0;
   int    back, pos, lasthighpos = 0, lastlowpos = 0;
   double extremum;
   double curlow = 0.0, curhigh = 0.0, lasthigh = 0.0, lastlow = 0.0;

   if(rates_total < InpDepth || InpBackstep >= InpDepth)
      return(0);

   if(prev_calculated == 0)
      limit = InitializeAll();
   else 
   {

      i = counterZ = 0;
      while(counterZ < ExtLevel && i < 100)
      {
         if(ExtZigzagBuffer[i] != 0.0)
         counterZ ++;
         i ++;
      }

      if(counterZ == 0)
         limit = InitializeAll();
      else
      {

         limit = i - 1;

         if(ExtLowBuffer[i] != 0.0) 
         {

            curlow = ExtLowBuffer[i];

            whatlookfor = 1;
         }
         else
         {

            curhigh = ExtHighBuffer[i];

            whatlookfor = -1;
         }

         for(i = limit - 1; i >= 0; i --)  
         {
            ExtZigzagBuffer[i] = 0.0;  
            ExtLowBuffer[i] = 0.0;
            ExtHighBuffer[i] = 0.0;
         }
      }
   }

   for(i = limit; i >= 0; i --)
   {

      extremum = low[iLowest(NULL, 0, MODE_LOW, InpDepth, i)];

      if(extremum == lastlow)
         extremum = 0.0;
      else 
      { 

         lastlow = extremum; 

         if(low[i] - extremum > InpDeviation * Point)
            extremum = 0.0;
         else
         {

            for(back = 1; back <= InpBackstep; back ++)
            {
               pos = i + back;
               if(ExtLowBuffer[pos] != 0 && ExtLowBuffer[pos] > extremum)
                  ExtLowBuffer[pos] = 0.0; 
            }
         }
      } 

      if(low[i] == extremum)
         ExtLowBuffer[i] =

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

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

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

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

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

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

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