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

iFibonacci

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

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

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

О программе

<p>Индикатор iFibonacci — это пользовательский индикатор для MetaTrader 5, который отображает на графике набор аналитических инструментов Фибоначчи. Он основан на расчёте разворотов индикатора ZigZag и строит различные фибоначчиевые объекты от найденных ключевых точек.</p><p>Индикатор поддерживает отображение ретрейсмента, дуги, веера, временных зон и расширения Фибоначчи, а также позволяет рисовать паттерны, дневные и недельные уровни максимумов/минимумов, дневной пивот и отображать оставшееся время свечи. Все элементы настраиваются через параметры цвета, стиля и толщины линий.</p><p>Для работы метода масштабирования дуги через ClientRect требуется разрешение на импорт DLL. Индикатор корректно завершает работу, удаляя все созданные графические объекты при деинициализации.</p>

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

НастройкаОписание
Z I G Z A G S E T T I N G (lb_0) Разделитель настроек ZigZag
ZigZag Depth (ExtDepth) Глубина поиска разворотов ZigZag
ZigZag Deviation (ExtDeviation) Отклонение цены для ZigZag
ZigZag Backstep (ExtBackstep) Количество баров для отката ZigZag
Maximum Bars (MaxBars) Максимальное количество баров для расчёта
Time Frame to use (FixedPeriod) Таймфрейм для расчёта ZigZag
lb_1 Разделитель настроек
F I B O R E T R A C E M E N T (lb_2) Разделитель настроек ретрейсмента
Show Retracement (ShowRetracement) Отображать ретрейсмент Фибоначчи
Levels Style (rStyle) Стиль уровней ретрейсмента
Levels Color (rColor) Цвет уровней ретрейсмента
Levels Width (rWidth) Толщина уровней ретрейсмента
Level 0 (l0) Уровень 0 для ретрейсмента Фибоначчи
Level 38.2 (l38) Уровень 38.2 для ретрейсмента Фибоначчи
Level 50 (l50) Уровень 50 для ретрейсмента Фибоначчи
Level 61.8 (l61) Уровень 61.8 для ретрейсмента Фибоначчи
Level 100 (l100) Уровень 100 для ретрейсмента Фибоначчи
Extra levels: 14.6, 23.6, 76.4, 88.6, 127.2 (ExtraLevels) Включить дополнительные уровни ретрейсмента: 14.6, 23.6, 76.4, 88.6, 127.2
Level 14.6 (l14) Уровень 14.6 для ретрейсмента Фибоначчи
Level 23.6 (l23) Уровень 23.6 для ретрейсмента Фибоначчи
Level 76.4 (l74) Уровень 76.4 для ретрейсмента Фибоначчи
Level 88.6 (l88) Уровень 88.6 для ретрейсмента Фибоначчи
Level 127.2 (l127) Уровень 127.2 для ретрейсмента Фибоначчи
Show Prices (LevelPrice) Отображать цены уровней ретрейсмента
lb_3 Разделитель настроек
F I B O A R C (lb_4) Разделитель настроек дуги
Show Arc (ShowArc) Отображать дугу Фибоначчи
Scalling Method (ScaleMethod) Метод масштабирования дуги: математический, через прямоугольник окна или вручную
NOTE! (info) Примечание: для метода ClientRect необходимо разрешить импорт DLL
Manual Scale value (ManualScale) Ручное значение масштаба для дуги Фибоначчи
Arc Color (aColor) Цвет дуги Фибоначчи
Arc Style (aStyle) Стиль дуги Фибоначчи
Arc Width (aWidth) Толщина дуги Фибоначчи
Level 38.2 (ARC38) Уровень 38.2 для дуги Фибоначчи
Level 50 (ARC50) Уровень 50 для дуги Фибоначчи
Level 61.8 (ARC61) Уровень 61.8 для дуги Фибоначчи
Show extra levels: 14.6, 23.6, 76.4 (ExtraARC) Включить дополнительные уровни дуги: 14.6, 23.6, 76.4
Level 14.6 (ARC14) Уровень 14.6 для дуги Фибоначчи
Level 23.6 (ARC23) Уровень 23.6 для дуги Фибоначчи
Level 76.4 (ARC74) Уровень 76.4 для дуги Фибоначчи
lb_5 Разделитель настроек
F I B O F A N (lb_6) Разделитель настроек веера
Show Fan (ShowFan) Отображать веер Фибоначчи
Fan Color (fColor) Цвет веера Фибоначчи
Fan Style (fStyle) Стиль веера Фибоначчи
Fan Width (fWidth) Толщина веера Фибоначчи
Level 38.2 (FAN38) Уровень 38.2 для веера Фибоначчи
Level 50 (FAN50) Уровень 50 для веера Фибоначчи
Level 61.8 (FAN61) Уровень 61.8 для веера Фибоначчи
Show extra levels: 14.6, 23.6, 76.4 (ExtraFAN) Включить дополнительные уровни веера: 14.6, 23.6, 76.4
Level 14.6 (FAN14) Уровень 14.6 для веера Фибоначчи
Level 23.6 (FAN23) Уровень 23.6 для веера Фибоначчи
Level 76.4 (FAN74) Уровень 76.4 для веера Фибоначчи
lb_7 Разделитель настроек
F I B O T I M E Z O N E S (lb_8) Разделитель настроек временных зон
Show Time Zones (ShowZone) Отображать временные зоны Фибоначчи
Time Color (zColor) Цвет временных зон Фибоначчи
Time Style (zStyle) Стиль временных зон Фибоначчи
Time Width (zWidth) Толщина временных зон Фибоначчи
Level 0 (Zone0) Уровень 0 для временных зон Фибоначчи
Level 100 (Zone1) Уровень 100 для временных зон Фибоначчи
Level 200 (Zone2) Уровень 200 для временных зон Фибоначчи
Level 300 (Zone3) Уровень 300 для временных зон Фибоначчи
Level 500 (Zone5) Уровень 500 для временных зон Фибоначчи
Level 800 (Zone8) Уровень 800 для временных зон Фибоначчи
Level 1300 (Zone13) Уровень 1300 для временных зон Фибоначчи
Level 2100 (Zone21) Уровень 2100 для временных зон Фибоначчи
Level 3400 (Zone34) Уровень 3400 для временных зон Фибоначчи
lb_9 Разделитель настроек
F I B O E X P A N S I O N (lb_10) Разделитель настроек расширения
Show Expansion (ShowExpansion) Отображать расширение Фибоначчи
Expansion Color (eColor) Цвет расширения Фибоначчи
Expansion Style (eStyle) Стиль расширения Фибоначчи
Expansion Width (eWidth) Толщина расширения Фибоначчи
Level 61.8 (EXP61) Уровень 61.8 для расширения Фибоначчи
Level 100 (EXP100) Уровень 100 для расширения Фибоначчи
Level 161.8 (EXP161) Уровень 161.8 для расширения Фибоначчи
Level 261.8 (EXP261) Уровень 261.8 для расширения Фибоначчи
Show extra levels: 78.66, 138.2, 200 (ExtraEXP) Включить дополнительные уровни расширения: 78.6, 138.2, 200
Level 78.6 (EXP78) Уровень 78.6 для расширения Фибоначчи
Level 138.2 (EXP138) Уровень 138.2 для расширения Фибоначчи
Level 200 (EXP200) Уровень 200 для расширения Фибоначчи
lb_13 Разделитель настроек паттернов
D R A W P A T T E R N (lb_14) Разделитель настроек отрисовки
Show Pattern (ShowPattern) Отображать паттерны из разворотов ZigZag
Pattern Color (pColor) Цвет паттернов из разворотов ZigZag
lb_15 Разделитель настроек дневных уровней
D A I L Y H I G H / L O W (lb_16) Разделитель настроек дневных максимумов и минимумов
Show Daily High/Low (ShowDaily) Отображать дневные максимумы и минимумы
Daily High/Low Color (DayColor) Цвет дневных линий максимумов и минимумов
Daily High/Low Width (DayWidth) Толщина дневных линий максимумов и минимумов
Daily High/Low Style (DayStyle) Стиль дневных линий максимумов и минимумов
Show Daily Pivot (ShowPivot) Отображать дневной пивот
Pivot Line Color (PivotColor) Цвет линии дневного пивота
Pivot Line Width (PivotWidth) Толщина линии дневного пивота
Pivot Line Style (PivotStyle) Стиль линии дневного пивота
lb_17 Разделитель настроек
W E E K L Y H I G H / L O W (lb_18) Разделитель настроек недельных уровней
Show Weekly High/Low (ShowWeekly) Отображать недельные максимумы и минимумы
Weekly Lines Color (WeekColor) Цвет недельных линий максимумов и минимумов
Получить полный код

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

#property version     "1.01"
#property description "This indicator will Draw Fibonacci Tools e.g. Retracement, Arc, Fan, Expansion, TimeZones. Based on zigzag indicator.\n"
#property description "Credit: \n      JimDandy, \n      WHRoeder, \n      RaptorUK, \n      deVries"
#property strict
#property indicator_chart_window

#import "user32.dll"
int GetClientRect(int hWnd,int &lpRect[]);
#import

enum ArcScale
  {
   Math,       // MathAbs
   ClientRect, // ClientRect
   Manual      // Set Manually
  };

input string  lb_0                     = "";                // ----------  Z I G Z A G   S E T T I N G  
extern int    ExtDepth                 = 24;                // ZigZag Depth
extern int    ExtDeviation             = 5;                 // ZigZag Deviation
extern int    ExtBackstep              = 3;                 // ZigZag Backstep
extern int    MaxBars                  = 500;               // Maximum Bars 
extern ENUM_TIMEFRAMES FixedPeriod     = 0;                 // Time Frame to use

input string  lb_1                     = "";                // --------------------------------------------------------    
input string  lb_2                     = "";                // ----------  F I B O   R E T R A C E M E N T  
extern bool   ShowRetracement          = true;              // Show Retracement
extern ENUM_LINE_STYLE rStyle          = 0;                 // Levels Style
extern color  rColor                   = clrGold;           // Levels Color
extern int    rWidth                   = 1;                 // Levels Width
extern double l0                       = 0.0;               // Level 0
extern double l38                      = 0.382;             // Level 38.2
extern double l50                      = 0.5;               // Level 50  
extern double l61                      = 0.618;             // Level 61.8
extern double l100                     = 1.0;               // Level 100
extern bool   ExtraLevels              = false;             // Extra levels: 14.6, 23.6, 76.4, 88.6, 127.2
extern double l14                      = 0.146;             // Level 14.6
extern double l23                      = 0.236;             // Level 23.6
extern double l74                      = 0.764;             // Level 76.4
extern double l88                      = 0.886;             // Level 88.6
extern double l127                     = 1.272;             // Level 127.2
extern bool   LevelPrice               = false;             // Show Prices

input string  lb_3                     = "";                // --------------------------------------------------------
input string  lb_4                     = "";                // ----------  F I B O   A R C  
extern bool   ShowArc                  = false;             // Show Arc
extern ArcScale ScaleMethod            = Math;              // Scalling Method
input string  info="If ClientRect, you must allow DLL imports first"; // ----------  NOTE!
extern double ManualScale              = 0;                 // Manual Scale value
extern color  aColor                   = clrTomato;         // Arc Color
extern ENUM_LINE_STYLE aStyle          = 0;                 // Arc Style
extern int    aWidth                   = 1;                 // Arc Width
extern double ARC38                    = 0.382;             // Level 38.2
extern double ARC50                    = 0.500;             // Level 50  
extern double ARC61                    = 0.618;             // Level 61.8
extern bool   ExtraARC                 = false;             // Show extra levels: 14.6, 23.6, 76.4
extern double ARC14                    = 0.146;             // Level 14.6
extern double ARC23                    = 0.236;             // Level 23.6
extern double ARC74                    = 0.764;             // Level 76.4

input string  lb_5                     = "";                // --------------------------------------------------------
input string  lb_6                     = "";                // ----------  F I B O   F A N  
extern bool   ShowFan                  = true;              // Show Fan
extern color  fColor                   = clrGold;           // Fan Color
extern ENUM_LINE_STYLE fStyle          = 2;                 // Fan Style
extern int    fWidth                   = 1;                 // Fan Width
extern double FAN38                    = 0.382;             // Level 38.2
extern double FAN50                    = 0.5;               // Level 50  
extern double FAN61                    = 0.618;             // Level 61.8
extern bool   ExtraFAN                 = false;             // Show extra levels: 14.6, 23.6, 76.4
extern double FAN14                    = 0.146;             // Level 14.6
extern double FAN23                    = 0.236;             // Level 23.6
extern double FAN74                    = 0.764;             // Level 76.4

input string  lb_7                     = "";                // --------------------------------------------------------
input string  lb_8                     = "";                // ----------  F I B O   T I M E Z O N E S  
extern bool   ShowZone                 = true;              // Show Time Zones 
extern color  zColor                   = clrDarkGoldenrod;  // Time Color
extern ENUM_LINE_STYLE zStyle          = 2;                 // Time Style
extern int    zWidth                   = 1;                 // Time Width
extern double Zone0                    = 0;                 // Level 0
extern double Zone1                    = 1;                 // Level 100
extern double Zone2                    = 2;                 // Level 200
extern double Zone3                    = 3;                 // Level 300
extern double Zone5                    = 5;                 // Level 500
extern double Zone8                    = 8;                 // Level 800
extern double Zone13                   = 13;                // Level 1300
extern double Zone21                   = 21;                // Level 2100
extern double Zone34                   = 34;                // Level 3400

input string  lb_9                     = "";                // --------------------------------------------------------
input string  lb_10                    = "";                // ----------  F I B O   E X P A N S I O N  
extern bool   ShowExpansion            = false;             // Show Expansion
extern color  eColor                   = clrBlue;           // Expansion Color
extern ENUM_LINE_STYLE eStyle          = 0;                 // Expansion Style
extern int    eWidth                   = 2;                 // Expansion Width
extern double EXP61                    = 0.618;             // Level 61.8 
extern double EXP100                   = 1;                 // Level 100
extern double EXP161                   = 1.618;             // Level 161.8
extern double EXP261                   = 2.618;             // Level 261.8
extern bool   ExtraEXP                 = false;             // Show extra levels: 78.66, 138.2, 200
extern double EXP78                    = 0.786;             // Level 78.6
extern double EXP138                   = 1.382;             // Level 138.2
extern double EXP200                   = 2;                 // Level 200

input string  lb_13                    = "";                // --------------------------------------------------------
input string  lb_14                    = "";                // ----------  D R A W   P A T T E R N
extern bool   ShowPattern              = false;             // Show Pattern
extern color  pColor                   = clrFireBrick;      // Pattern Color

input string  lb_15                    = "";                // --------------------------------------------------------
input string  lb_16                    = "";                // ----------  D A I L Y   H I G H / L O W
extern bool   ShowDaily                = true;              // Show Daily High/Low
extern color  DayColor                 = clrPurple;         // Daily High/Low Color 
extern color  DayWidth                 = 1;                 // Daily High/Low Width
extern ENUM_LINE_STYLE DayStyle        = 0;                 // Daily High/Low Style
extern bool   ShowPivot                = true;              // Show Daily Pivot
extern color  PivotColor               = clrLightGray;      // Pivot Line Color
extern color  PivotWidth               = 1;                 // Pivot Line Width
extern ENUM_LINE_STYLE PivotStyle      = 0;                 // Pivot Line Style    
input string  lb_17                    = "";                // --------------------------------------------------------
input string  lb_18                    = "";                // ----------  W E E K L Y   H I G H / L O W  
extern bool   ShowWeekly               = true;              // Show Weekly High/Low 
extern color  WeekColor                = clrDarkBlue;       // Weekly Lines Color
extern color  WeekWidth                = 1;                 // Weekly Lines Width
extern ENUM_LINE_STYLE WeekStyle       = 0;                 // Weekly Lines Style    
input string  lb_19                    = "";                // --------------------------------------------------------
input string  lb_20                    = "";                // ----------  M O N T H L Y   H I G H / L O W  
extern bool   ShowMonthly              = false;             // Show Monthly High/Low
extern color  MonthColor               = clrFireBrick;      // Monthly Lines Color
extern color  MonthWidth               = 1;                 // Monthly Lines Width
extern ENUM_LINE_STYLE MonthStyle      = 0;                 // Monthly Lines Style        
input string  lb_21                    = "";                // --------------------------------------------------------
input string  lb_22                    = "";                // ----------  C A N D L E    T I M E
extern bool   ShowCanldeTime           = true;              // Show Candle Time
extern color  TimerColor               = clrYellow;         // Time Left Color
extern int    TimerFontSize            = 7;                 // Time Left Font Size

double   zValue[5];  // zigzag swings value. zValue[1] = swing 1, and so on.
datetime zTime[5];   // Time for zigzag swings value

int rect[4];         // defines the coordinates of window.
int hwnd;            // A handle to the window whose client coordinates are to be retrieved. 
int gPixels,vPixels;

double DayLow,DayHigh,DayClose,DayPivot,WeekLow,WeekHigh,MonthLow,MonthHigh;

string Tools[8]  = {"Fibo Retracement", "Fibo Arc", "Fibo Fan", "Fibo TimeZones", "Fibo Expansion", "Pattern1", "Pattern2", "Candle Time"},
Names[7]  = {"Yesterday High", "Yesterday Low", "Weekly High", "Weekly Low", "Monthly High", "Monthly Low", "Pivot"},
Labels[7] = {"YH","YL","WH","WL","MH", "ML", "PVT"}, space = "       ";

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

void OnDeinit(const int reason)
  {

   for(int i=0; i<9; i++)
     {
      if(ObjectFind(0,Tools[i])        >=0) ObjectDelete(Tools[i]);
      if(ObjectFind(0,Names[i])        >=0) ObjectDelete(Names[i]);
      if(ObjectFind(0,space+Labels[i]) >=0) ObjectDelete(space+Labels[i]);
     }
  }

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 limit,counted_bars=prev_calculated;
   if(counted_bars < 0) return(rates_total);
   if(counted_bars>0) counted_bars--;
   limit=rates_total-counted_bars;
   if(limit>MaxBars) limit=MaxBars;

   int n=0;

   for(int i=0; i<limit; i++)
     {
      double zz=iCustom(NULL,FixedPeriod,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(zz!=0 && zz!=EMPTY_VALUE)
        {
         zValue[n] = zz;
         z

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

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

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

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

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

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

Стоимость полного кода
1 746,80₽ ≈ $21.35