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

fibo extensions.mq5

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

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

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

О программе

Это пользовательский индикатор для MetaTrader 5, который отображает на графике инструмент расширения Фибоначчи. Индикатор анализирует последние бары в пределах заданного периода ретроспективы, находит локальные минимумы и максимумы по ценам закрытия и строит объект OBJ_FIBO между двумя выбранными точками. Уровни расширения включают стандартные значения, такие как 23.6, 38.2, 50.0, 61.8, 76.4, 100.0, 138.2 и другие. Пользователь может настроить глубину анализа, смещение последнего бара, цвет линий Фибоначчи и видимость объекта. Индикатор также создает вспомогательные стрелки на графике для отметки найденных экстремумов. Все настройки задаются через входные параметры, что позволяет адаптировать индикатор под разные таймфреймы и предпочтения трейдера. Индикатор не выполняет торговых операций и предназначен только для визуального анализа.

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

НастройкаОписание
60 (lookback) Глубина анализа — Количество баров для анализа при поиске экстремумов (по умолчанию 144).
lastbar Последний бар — Смещение последнего бара, с которого начинается анализ.
FibColor Цвет Фибоначчи — Цвет линий уровней Фибоначчи на графике.
FiboVisible Видимость Фибоначчи — Переключатель отображения объекта Фибоначчи на графике.
Получить полный код

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

#property indicator_chart_window

   color BarLabel_color = clrLightGray,
         MyColor = clrGray,
         OldColor = clrGray;  

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

int deinit()
  {

   ObjectDelete("Fibo");

   return(0);
  }

extern int lookback = 144;   //60
extern int lastbar = 0;
extern color FibColor= clrAqua;
extern bool FiboVisible = true;
int start()
  {
      // код доступен только после оплаты
   }    

  ObjectDelete("Fibo");
   int    counted_bars=IndicatorCounted();

   double lowest=1000, highest=0;
   datetime T1,T2;

   int xlookback = Period();

   switch (xlookback) 
   {
    case 15: xlookback = lookback; break;
    case 30: xlookback = 66; break;    
    case 60: xlookback = 35; break; 
    case 240: xlookback = 45; break; 
    case 1440: xlookback = 15; break;   
   }  

   for(int i=xlookback+lastbar;i>lastbar+1;i--)
   {  
      double curLow0=iClose(Symbol(),Period(),i-2);
      double curLow1=iClose(Symbol(),Period(),i+1);
      double curLow2=iClose(Symbol(),Period(),i);
      double curLow3=iClose(Symbol(),Period(),i-1);
      double curLow4=iClose(Symbol(),Period(),i-2);

      double curHigh0=iClose(Symbol(),Period(),i+2);
      double curHigh1=iClose(Symbol(),Period(),i+1);
      double curHigh2=iClose(Symbol(),Period(),i);
      double curHigh3=iClose(Symbol(),Period(),i-1);
      double curHigh4=iClose(Symbol(),Period(),i-2);

      if(curLow2<=curLow1 && curLow2<=curLow1 && curLow2<=curLow0 )
      {
      if(lowest>curLow2){
         lowest=curLow2;
         T2=iTime(Symbol(),Period(),i);}                   
      }

      if(curHigh2>=curHigh1 && curHigh2>=curHigh3&& curHigh2>=curHigh4)
      {  
         if(highest<curHigh2){
         highest=curHigh2;
         T1=iTime(Symbol(),Period(),i);}      
      }

/*
         Arrow("lowestY0", lowest ,250, 217, clrBlue); 
         double y1 = lowest+((highest-lowest)*0.618); 
         Arrow("lowestY1", y1 ,250, 218, clrRed);   
         double y2 = lowest+((highest-lowest)*0.764); 
         Arrow("lowestY2", y2 ,250, 218, clrRed);
         double y3 = lowest+((highest-lowest)*1.618); 
         Arrow("lowestY3", y3 ,250, 218, clrRed);

         Arrow("curLow0",   highest-((highest-lowest)*0.5) ,250, 115, clrAliceBlue); 

         Arrow("highestX0", highest ,250, 218, clrRed);          
         double x1 = highest-((highest-lowest)*0.618); 
         Arrow("highestX1", x1 ,250, 217, clrBlue); 
         double x2 = highest-((highest-lowest)*0.764); 
         Arrow("highestX2", x2 ,250, 217, clrBlue); 
         double x3 = highest-((highest-lowest)*1.618); 
         Arrow("highestX3", x3 ,250, 217, clrBlue); 
*/          
   }   

         double priceLow = 100*(Close[0]-lowest)/lowest;
         double priceHigh = 100*(highest-Close[0])/Close[0]; 

          Arrow("lowest", lowest ,250, 115, clrBlue); 
          Arrow("highest", highest ,250, 115, clrRed);   

 if(FiboVisible)
  {
   if(T1<T2)
   {ObjectCreate("Fibo", OBJ_FIBO, 0, T1, highest,T1,lowest);
    MyColor = 64636;
    } // T1 & T2
   else{
    ObjectCreate("Fibo", OBJ_FIBO, 0, T2, lowest, T2,highest); // T2 & T1
    MyColor = 255;
   }   

   string fiboobjname = "Fibo";
   ObjectSet(fiboobjname, OBJPROP_FIBOLEVELS, 11);
   ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL, 0.0); 

   ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+7, -0.382);
   ObjectSetFiboDescription(fiboobjname,7,"138.2    %$");

   ObjectSetFiboDescription(fiboobjname,0,"Swing    %$");
   ObjectSet(fiboobjname, OBJPROP_FIRSTLEVEL+1, 0.236);
   ObjectSetFiboDescription(fiboobjname,1,"23.6     %$");
   O

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

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

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

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

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

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

Стоимость полного кода
546,60₽ ≈ $6.68