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

fibo retracement 1.01.mq5

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

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

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

О программе

Индикатор «Fibo Retracement» для MetaTrader 4 рассчитывает ZigZag по ценовым экстремумам и строит три набора уровней Фибоначчи между значимыми точками разворота. Три линии Фибоначчи (Fibo3, Fibo2, Fibo1) отображаются на графике с настраиваемыми цветами, стилями и наборами уровней, что позволяет анализировать коррекции и откаты цены на разных участках истории.

Индикатор поддерживает систему уведомлений: при касании цены уровнями Фибоначчи можно получать звуковые, push-уведомления, email-рассылки и всплывающие сообщения. Включает визуальную маркировку свечей, коснувшихся уровней, с настраиваемыми цветами тел и теней для наглядного отслеживания событий на графике.

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

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

НастройкаОписание
ExtDepth ExtDepth — Глубина поиска экстремумов для расчёта ZigZag в количествах баров.
ExtDeviation ExtDeviation — Допустимое отклонение цены при определении значимых минимумов и максимумов ZigZag.
ExtBackstep ExtBackstep — Количество баров назад для проверки и коррекции найденных экстремумов ZigZag.
Fibo1Color Fibo1Color — Цвет линии Фибоначчи Fibo1 (третий набор уровней на графике).
Fibo1Width Fibo1Width — Толщина линии Фибоначчи Fibo1.
Fibo1Style Fibo1Style — Стиль линии Фибоначчи Fibo1 (пунктир, сплошная и т.д.).
Fibo1LevelsStyle Fibo1LevelsStyle — Стиль отображения уровней Фибоначчи в наборе Fibo1.
ShowSecondFibo ShowSecondFibo — Переключатель видимости второго набора уровней Фибоначчи (Fibo2).
Fibo2Color Fibo2Color — Цвет линии Фибоначчи Fibo2 (второй набор уровней на графике).
Fibo2Width Fibo2Width — Толщина линии Фибоначчи Fibo2.
Fibo2Style Fibo2Style — Стиль линии Фибоначчи Fibo2.
Fibo2LevelsStyle Fibo2LevelsStyle — Стиль отображения уровней Фибоначчи в наборе Fibo2.
ShowThirdFibo ShowThirdFibo — Переключатель видимости третьего набора уровней Фибоначчи (Fibo3).
Fibo3Color Fibo3Color — Цвет линии Фибоначчи Fibo3 (первый набор уровней на графике).
Fibo3Width Fibo3Width — Толщина линии Фибоначчи Fibo3.
Fibo3Style Fibo3Style — Стиль линии Фибоначчи Fibo3.
Fibo3LevelsStyle Fibo3LevelsStyle — Стиль отображения уровней Фибоначчи в наборе Fibo3.
_ _ — Текстовый параметр, обозначающий группу настроек поведения уведомлений.
alertsOn alertsOn — Включает или отключает проверку касания ценой уровней Фибоначчи и отправку уведомлений.
alertsTolerance alertsTolerance — Допуск в пунктах для определения касания ценой уровня Фибоначчи.
touchChanell touchChanell — Переключатель режима касания: с учётом канала (удвоенный допуск) или без.
alertsOnCurrent alertsOnCurrent — Проверять касание на текущем баре или на закрытом предыдущем.
alertsMessage alertsMessage — Отправлять ли всплывающие сообщения при касании уровня.
alertsSound alertsSound — Воспроизводить ли звуковой сигнал при касании уровня.
alertsNotify alertsNotify — Отправлять ли push-уведомление при касании уровня.
alertsEmail alertsEmail — Отправлять ли email-уведомление при касании уровня.
alertsShowTouched alertsShowTouched — Отображать ли маркировку свечей, коснувшихся уровней Фибоначчи.
soundFile soundFile — Путь к звуковому файлу, воспроизводимому при касании уровня.
barsToShowCandles barsToShowCandles — Количество баров, в пределах которых отображается маркировка касаний.
BarUpColor BarUpColor — Цвет тела свечи-маркера при касании уровня снизу вверх.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 1
extern int     ExtDepth         = 30;
extern int     ExtDeviation     = 5;
extern int     ExtBackstep      = 3;
extern string  FiboLevels       = "0;23.6;38.2;50;61.8;100";
extern color   Fibo1Color       = clrDodgerBlue;
extern int     Fibo1Width       = 1;
extern int     Fibo1Style       = STYLE_DOT;
extern int     Fibo1LevelsStyle = STYLE_SOLID;
extern bool    ShowSecondFibo   = true;
extern color   Fibo2Color       = clrDarkSlateGray;
extern int     Fibo2Width       = 1;
extern int     Fibo2Style       = STYLE_DOT;
extern int     Fibo2LevelsStyle = STYLE_SOLID;
extern bool    ShowThirdFibo    = true;
extern color   Fibo3Color       = clrGoldenrod;
extern int     Fibo3Width       = 1;
extern int     Fibo3Style       = STYLE_DOT;
extern int     Fibo3LevelsStyle = STYLE_SOLID;

extern string _                      = "alerts behaviour";
extern bool   alertsOn               = false;
extern double alertsTolerance        = 1.0;
extern bool   touchChanell           = false;
extern bool   alertsOnCurrent        = false;
extern bool   alertsMessage          = true;
extern bool   alertsSound            = false;
extern bool   alertsNotify           = false;
extern bool   alertsEmail            = false;
extern bool   alertsShowTouched      = true;
extern string soundFile              = "alert2.wav"; 
extern int    barsToShowCandles      = 1000;
extern color  BarUpColor             = Green; 
extern color  BarDownColor           = Red; 
extern color  WickColor              = Gray;
extern int    CandleWidth            = 3;

double ExtMapBuffer[];
double ExtLowBuffer[];
double ExtHighBuffer[];

int    totalCandles;
string windowID;
double levelv[];
string levels[];
double values[];

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
	ObjectDelete("Fibo1");
	ObjectDelete("Fibo2");
	ObjectDelete("Fibo3");
	deleteCandles();
return(0);
}

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

void CalculateZigZag()
{
   int    shift, back,lasthighpos,lastlowpos,index;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;

   for(shift=Bars-ExtDepth; shift>=0; shift--)
     {
      index=iLowest(NULL,0,MODE_LOW,ExtDepth,shift);
      val=Low[index];
      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=ExtLowBuffer[shift+back];
               if((res!=0)&&(res>val)) ExtLowBuffer[shift+back]=0.0; 
              }
           }
        } 
      ExtLowBuffer[shift]=0.0;
      if(val!=0.0) ExtLowBuffer[index]=val;

      index=iHighest(NULL,0,MODE_HIGH,ExtDepth,shift);
      val=High[index];
      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=ExtHighBuffer[shift+back];
               if((res!=0)&&(res<val)) ExtHighBuffer[shift+back]=0.0; 
              } 
           }
        }
      ExtHighBuffer[shift]=0.0;
      if(val!=0.0) ExtHighBuffer[index]=val;
     }

   lasthigh=-1; la

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

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

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

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

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

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

Стоимость полного кода
1 137,60₽ ≈ $13.90