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

fibo_s 600+.mq5

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

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

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

О программе

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

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

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

Перед удалением индикатора с графика происходит очистка всех созданных графических объектов и комментариев.

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

НастройкаОписание
TargetPeriod Период целевых уровней — Задаёт период для расчёта целевых уровней, которые отображаются при включённом соответствующем переключателе.
FiboPeriod Периент Фибоначчи — Задаёт период для определения значимых свинг-максимумов и свинг-минимумов цены, используемых в качестве базы для расчёта уровней.
ShowTarget Показывать целевые уровни — Управляет отображением целевых уровней, рассчитанных по отдельному периоду, в виде линий и текстовых подписей.
ShowFiboLines Показывать линии Фибоначчи — Управляет отрисовкой вспомогательных линий и подписей стандартных коэффициентов на графике.
ShowHighLow Показывать максимум и минимум — Управляет отображением горизонтальных линий и подписей последнего обнаруженного максимума и минимума.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4

#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Green

extern int TargetPeriod=34;
extern int FiboPeriod=17;
extern bool ShowTarget=true;
extern bool ShowFiboLines=false;
extern bool ShowHighLow=false;

double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double zzL[];
double zzH[];
double zz[];
double target1=0,target2=0;

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

  int deinit()
  {

   ObjectDelete("Target1=");
   ObjectDelete("Target2=");
   ObjectDelete("TargetUp");
   ObjectDelete("TargetDown");
   ObjectDelete("TP1");
   ObjectDelete("TP2");
   ObjectDelete("R0");
   ObjectDelete("R1");
   ObjectDelete("R2");
   ObjectDelete("R3");
   ObjectDelete("R4");
   ObjectDelete("R5");
   ObjectDelete("LH");
   ObjectDelete("LL");
   ObjectDelete("Low");
   ObjectDelete("High");
   ObjectDelete("1.0");
   ObjectDelete("0.618");
   ObjectDelete("0.5");
   ObjectDelete("0.382");
   ObjectDelete("0.236");
   ObjectDelete("0.0");
   Comment(" ");

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   int    i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;
   int    targethighpos,targetlowpos;
   double curlow,curhigh,lasthigh,lastlow,targethigh,targetlow;
   double min, max;

   lasthighpos=Bars; lastlowpos=Bars;
   lastlow=Low[Bars];lasthigh=High[Bars];
   targethighpos=Bars; targetlowpos=Bars;
   targetlow=Low[Bars];targethigh=High[Bars];

   for(shift=Bars-FiboPeriod; shift>=0; shift--)
     {
      curlowpos=Lowest(NULL,0,MODE_LOW,FiboPeriod,shift);
      curlow=Low[curlowpos];
      curhighpos=Highest(NULL,0,MODE_HIGH,FiboPeriod,shift);
      curhigh=High[curhighpos];
        if(shift<Bars-TargetPeriod)
        {
         targetlowpos=Lowest(NULL,0,MODE_LOW,TargetPeriod,shift);
         targetlow=Low[targetlowpos];
         targethighpos=Highest(NULL,0,MODE_HIGH,TargetPeriod,shift);
         targethigh=High[targethighpos];
        }

      if(curlow>=lastlow){ lastlow=curlow; }
      else
        {
         if(lasthighpos>curlowpos )
           {
            zzL[curlowpos]=curlow;
            min=100000; pos=lasthighpos;
            for(i=lasthighpos; i>=curlowpos; i--)
              {
               if (zzL[i]==0.0) continue;
               if (zzL[i]<min) { min=zzL[i]; pos=i; }
               zz[i]=0.0;
              }
            zz[pos]=min;
           }
         lastlowpos=curlowpos;
         lastlow=curlow;
        }

      if(curhigh<=lasthigh) { lasthigh=curhigh;}
      else
        {
         if(lastlowpos>curhighpos)
           {
            zzH[curhighpos]=curhigh;
            max=-100000; pos=lastlowpos;
            for(i=lastlowpos; i>=curhighpos; i--)
              {
               if (zzH[i]==0.0) continue;
               if (zzH[i]>max) { max=zzH[i]; pos=i; }
               zz[i]=0.0;
              }
            zz[pos]=max;
           }
         lasthighpos=curhighpos;
         lasthigh=curhigh;
        }
      double p, r5,r4,r3,r2,r1,r0;
      double R2= targethigh - targetlow;
      double R1= lasthigh - lastlow;
      double R= High[lasthighpos] - Low[lastlowpos];
      int div=10000;
      color Line_color=Green;
      color Target_color=Red;
      if(Digits==2)div=100;
      if(Digits==4)div=10000;

      ExtMapBuffer1[shift]=0;
      ExtMapBuffer2[shift]=0;
      ExtMapBuffer3[shift]=0;
      ExtMapBuffer4[shift]=0;

        if(lastlowpos<lasthighpos) 
        {
         p=curlow;
         r5=p + (R * 1);
         r4=p + (R * 0.618);
         r3=p + (R * 0.5);
         r2=p + (R * 0.382);
         r1=p + (R * 0.236);
      

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

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

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

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

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

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

Стоимость полного кода
588,20₽ ≈ $7.19