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

zzlfibosignal.mq5

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

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

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

О программе

ZZLFiboSignal — индикатор для MetaTrader 5, который анализирует максимумы и минимумы ценовых баров в заданном диапазоне и определяет точки разворота тренда по принципу зигзага. На основе обнаруженных свинг-хаев и свинг-лоу индикатор рисует стрелки сигналов покупки и продажи, горизонтальные линии ключевых уровней и объекты расширения Фибоначчи между тремя значимыми точками.

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

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

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

НастройкаОписание
BR Количество баров с конца графика, анализируемых для поиска экстремумов и разворотов.
LG Внутренний период поиска экстремумов — количество баров, в пределах которых сравниваются минимумы и максимумы для определения разворота.
LG2 Дополнительный период поиска экстремумов, используемый вместо LG при таймфрейме M1 (Period()==1).
LT Стиль отображения линии зигзага на графике.
ARS Размер стрелки-сигнала, отображаемой на графике при обнаружении точки разворота.
LARS Толщина горизонтальных линий, отображаемых на уровне сигнала покупки или продажи.
SCLR Цвет линии и стрелки сигнала продажи.
BCLR Цвет линии и стрелки сигнала покупки.
LCLR Цвет линии зигзага, отображаемой на графике.
______________1_____________ Заголовок раздела параметров расширения Фибоначчи.
ExtFiboExpansion Параметр, определяющий количество или идентификатор объекта расширения Фибоначчи на графике.
ExtFiboExpansionColor Цвет линий и уровней объекта расширения Фибоначчи.
ExtExpansionStyle Стиль линий объектов расширения Фибоначчи (например, сплошная, пунктир и т. д.).
ExtExpansionWidth Толщина линий объектов расширения Фибоначчи.
FiboExp Переключатель включения или отключения отрисовки объектов расширения Фибоначчи на графике.
ShowArrow Переключатель включения или отключения отрисовки стрелок-сигналов покупки и продажи на графике.
ShowHLine Переключатель включения или отключения отрисовки горизонтальных линий на уровнях сигналов.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 clrRed

extern int     BR    = 500;
extern int     LG    = 6;
extern int     LG2   = 15;
extern int     LT    = 2; //линия зигзаг 
extern int     ARS   = 5; //стрелка
extern int     LARS  = 5; //горизонтальная линия
extern color   SCLR  = clrMagenta;
extern color   BCLR  = clrGreen;
extern color   LCLR  = clrNONE;//Blue

extern string ______________1_____________ = "Параметры расширения Фибо";
extern int    ExtFiboExpansion      = 0;
extern color  ExtFiboExpansionColor = clrDimGray;
extern int    ExtExpansionStyle     = 2;
extern int    ExtExpansionWidth     = 0;
extern bool   FiboExp               = false;
extern bool   ShowArrow             = true;
extern bool   ShowHLine             = true;

double         EMB[];
int            shift;

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

int deinit()
  {
   ObjectDelete("Buy");
   ObjectDelete("Sell");
   ObjectDelete("Buy Line");
   ObjectDelete("Sell Line");
   ObjectDelete("Fibo1");
   ObjectDelete("Fibo2");
   Comment("");
   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   if(Period()==1)
      LG = LG2;
   int WF,SW,ND,i,ZZU,ZZD,PP,T1,T2,T3;
   double LL,HH,BH,BL;
   double UNIT[10000][3];
   SW=0;
   WF=0;
   ND=0;

   BH    =  High[BR];
   BL    =  Low[BR];
   ZZU   =  BR;
   ZZD   =  BR;

   for(shift=BR; shift>=0; shift--)
     {
      LL =  100000;
      HH = -100000;

      for(i=shift+LG; i>=shift+1; i--)
        {
         if(Low[i]< LL)
           {
            LL=Low[i];
           };
         if(High[i]>HH)
           {
            HH=High[i];
           };
        };

      if(Low[shift]<LL && High[shift]>HH)
        {
         WF=2;
         if(SW==1)
           {
            ZZU=shift+1;
           };
         if(SW==-1)
           {
            ZZD=shift+1;
           };
        }
      else
        {
         if(Low[shift]<LL)
           {
            WF=-1;
           };
         if(High[shift]>HH)
           {
            WF=1;
           };
        };

      if(WF!=SW && SW!=0)
        {

         if(WF==2)
           {
            WF=-SW;
            BH = High[shift];
            BL = Low[shift];
           };
         ND=ND+1;

         if(WF==1)
           {
            UNIT[ND][1]=ZZD;
            UNIT[ND][2]=BL;
           };

         if(WF==-1)
           {
            UNIT[ND][1]=ZZU;
            UNIT[ND][2]=BH;
           };

         BH = High[shift];
         BL = Low[shift];
        };

      if(WF==1)
        {
         if(High[shift]>=BH)
           {
            BH=High[shift];
            ZZU=shift;
           };
        };

      if(WF==-1)
        {
         if(Low[shift]<=BL)
           {
            BL=Low[shift];
            ZZD=shift;
           };
        };
      SW=WF;
     };

   for(i=1; i<=ND; i++)
     {
      PP=StrToInteger(DoubleToStr(UNIT[i][1],0));
      T1=StrToInteger(DoubleToStr(UNIT[i][1],0));
      T2=StrToInteger(DoubleToStr(UNIT[i-1][1],0));
      T3=StrToInteger(DoubleToStr(UNIT[i-2][1],0));
      EMB[PP]=UNIT[i][2];
      double s1 =  UNIT[i  ][2];
      double s2 =  UNIT[i-1][2];
      double s3 =  UNIT[i-2][2];

     };
   if(s1<s2)
     {
      if (ShowArrow) SetArrow(225, BCLR,  "Buy",  Time[T1], BL, ARS);
      if (ShowHLine) SetHLine(BCLR,   "Buy Line",  BL, 0, LARS);
      ObjectDelete("Sell Line");
      ObjectDelete("Sell");
      if(FiboExp)
        {
         ObjectDelete("Fibo2");
         ObjectCreate(0,"Fibo1",OBJ_EXPANSION,0,T3,s3,T2,s2,T1,s1);
         ObjectSet("Fibo1",OBJPROP_LEVELCOLOR,ExtFiboExpansionColor);
         ObjectSet("Fibo1",OBJPROP_LEVELSTYLE,ExtExpansionStyle);

         ObjectSet("Fibo1",OBJPROP_FIBOLEVELS,16); //Устанавливаем число уровней объекта
         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+0,0.000);//Устанавливаем значения каждого  уровня объекта

         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,0,0.000);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,0,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,0,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,0,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",0,"0.000");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+1,0.146);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,1,0.146);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,1,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,1,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,1,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",1,"0.146");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+2,0.236);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,2,0.236);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,2,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,2,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,2,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",2,"0.236");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+3,0.382);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,3,0.382);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,3,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,3,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,3,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",3,"0.382");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+4,0.5);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,4,0.5);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,4,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,4,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,4,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",4,"0.5");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+5,0.618);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,5,0.618);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,5,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,5,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,5,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",5,"0.618");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+6,0.764);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,6,0.764);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,6,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,6,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,6,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",6,"0.764");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+7,1);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,7,1);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,7,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,7,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,7,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",7,"1");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+8,1.236);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,8,1.236);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,8,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,8,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,8,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",8,"1.236");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+9,1.618);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,9,1.618);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,9,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,9,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,9,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",9,"1.618");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+10,2.618);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,10,2.618);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,10,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,10,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,10,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",10,"2.618");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+11,4.236);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,11,4.236);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,11,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,11,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,11,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",11,"4.236");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+12,6.854);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,12,6.854);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR,12,ExtFiboExpansionColor); // цвет уровня
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELSTYLE,12,ExtExpansionStyle);//Сплошная линия
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELWIDTH,12,ExtExpansionWidth);  //--- толщина уровня
         ObjectSetFiboDescription("Fibo1",12,"6.854");

         ObjectSet("Fibo1",OBJPROP_FIRSTLEVEL+13,11.09);
         ObjectSetDouble(0,"Fibo1",OBJPROP_LEVELVALUE,13,11.09);
         ObjectSetInteger(0,"Fibo1",OBJPROP_LEVELCOLOR

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

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

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

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

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

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

Стоимость полного кода
1 619,20₽ ≈ $19.79