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

AutoFibo TradeZones

autofibo trading zones bt.mq5
Вы автор или правообладатель?

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

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

О программе

AutoFibo TradeZones — индикатор для MetaTrader 4, отображающий на графике уровни Фибоначчи, прямоугольные зоны покупки и продажи, а также вертикальные линии начала и конца периода. Индикатор рассчитывает экстремумы цены за заданный интервал баров и строит на их основе аналитические объекты с настраиваемыми уровнями.

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

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

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

НастройкаОписание
FibPeriod Период расчёта — Период расчёта в барах для определения экстремумов и построения уровней
ShowStartLine Отображение линии начала — Отображение вертикальной линии начала периода
ShowEndLine Отображение линии окончания — Отображение вертикальной линии окончания периода
ShowChannel Отображение канала — Отображение линий канала высоких и низких значений на графике
FibStyle Стиль линий Фибоначчи — Стиль линий объекта Фибоначчи
FibColor Цвет уровней Фибоначчи — Цоль уровней Фибоначчи
StartLineColor Цвет линии начала — Цвет вертикальной линии начала периода
EndLineColor Цвет линии окончания — Цвет вертикальной линии окончания периода
BuyZoneColor Цвет зоны покупки — Цвет прямоугольника зоны покупки
SellZoneColor Цвет зоны продажи — Цвет прямоугольника зоны продажи
Button text width (buttSize) Размер текста кнопки — Ширина текста кнопки
Button text color (buttColor) Цвет текста кнопки — Цвет текста кнопки на графике
Button background color (backColor) Цвет фона кнопки — Цвет фона кнопки на графике
Button X axis (axisX) Позиция кнопки по X — Координата кнопки по оси X от угла графика
Button Y axis (axisY) Позиция кнопки по Y — Координата кнопки по оси Y от угла графика
Получить полный код

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

#property version "3.83" 

#property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1  clrDodgerBlue  //MidnightBlue
#property indicator_color2  clrCrimson  //FireBrick

#property indicator_style1  STYLE_DASH
#property indicator_style2  STYLE_DASH

#property indicator_width1  0
#property indicator_width2  0

extern int            FibPeriod = 240; 
extern bool       ShowStartLine = true;
extern bool         ShowEndLine = true;
extern bool         ShowChannel = true;
extern ENUM_LINE_STYLE FibStyle = STYLE_DASH;
extern color           FibColor = clrDarkGoldenrod;
extern color     StartLineColor = clrRoyalBlue; 
extern color       EndLineColor = clrFireBrick; 
extern color       BuyZoneColor = clrMidnightBlue;
extern color      SellZoneColor = clrFireBrick;

extern int            buttSize  =  10;               //Button text width
extern color         buttColor  =  clrGold;        //Button text color
extern color         backColor  =  C'45,25,135';     //Button background color               
extern int               axisX  =  0;                //Button X axis
extern int               axisY  =  555;              //Button Y axis

double WWBuffer1[];   
double WWBuffer2[];   datetime NewTime=0;

double levelArray[10]={0,0.236,0.382,0.5,0.618,0.764,1,1.618,2.618,4.236};
string leveldescArray[13]={"0","23.6%","38.2%","50%","61.8%","76.4%","100%","161.8%","261.80%","423.6%"};
int levelCount;
string levelName;
string StartLine = "StartLine"+(string)FibPeriod;
string EndLine = "EndLine"+(string)FibPeriod;
string PREF = "AutoFibZon["+(string)FibPeriod+","+(string)ShowStartLine+","+(string)ShowEndLine+","+(string)ShowChannel+"]";

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

void OnDeinit(const int reason)
{ 
   ALL_OBJ_DELETE(PREF);  Comment("");   //ObjectsDeleteAll(0,PREF,-1,-1); 
   ObjectDelete(0,PrefBT);

   switch(reason)
    {
     case REASON_PARAMETERS :
     case REASON_REMOVE     : ObjectDelete(0,StartLine); ObjectDelete(0,EndLine); break;
     default : ObjectDelete(0,PREF);
    }
}     

void ALL_OBJ_DELETE(string Pref)
{
   string name;
   for (int s=ObjectsTotal()-1; s>=0; s--) {
     name=ObjectName(s);
     if (StringSubstr(name,0,StringLen(Pref))==Pref) ObjectDelete(name); }
}

int start() {
      // код доступен только после оплаты
   }
   if (!buttON[0]) { InitZero(0); return(0); }

   int BarShift;
  if (ShowStartLine)
  {   
   datetime HLineTime=ObjectGet(StartLine,OBJPROP_TIME1);

   if (HLineTime>=Time[0]) {BarShift=0;}
     BarShift=iBarShift(NULL,0,HLineTime);
  }   
   else if (!ShowStartLine){BarShift=0;}
   if (ObjectFind(StartLine)==-1) {BarShift=0;}

   int BarShift2;
  if (ShowEndLine)
  {   
   datetime HLine2Time=ObjectGet(EndLine,OBJPROP_TIME1);

   if (HLine2Time>=Time[0]) {BarShift2=0;}
     BarShift2=iBarShift(NULL,0,HLine2Time);
  }   
   else if (!ShowEndLine){BarShift2=0;}
   if (ObjectFind(EndLine)==-1) {BarShift2=0;}   

   double SellZoneHigh,BuyZoneLow;
   if (ShowStartLine)
    {
    SellZoneHigh = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,BarShift-BarShift2,BarShift2+1));
    BuyZoneLow = iLow(NULL,0,iLowest(NULL,0,MODE_LOW,BarShift-BarShift2,BarShift2+1));
    }
      if (!ShowStartLine)
    {
    SellZoneHigh = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,FibPeriod,1));
    BuyZoneLow = iLow(NULL,0,iLowest(NULL,0,MODE_LOW,FibPeriod,1));
    } 
   double PriceRange = SellZoneHigh - BuyZoneLow; 
   double BuyZoneHigh = BuyZoneLow + (0.236*PriceRange);
   double SellZoneLow = SellZoneHigh - (0.236*PriceRange);
   datetime StartZoneTime =Time[FibPeriod];
   datetime EndZoneTime =Time[0]+Time[0];

   levelCount=ArraySize(levelArray);

   int CountedBars=IndicatorCounted();   
   if (CountedBars<0) return(-1); //Стандарт+Tankk+Вариант!!!
   if (CountedBars>0) CountedBars--;
   int limit=fmin(Bars-CountedBars-1+0,Bars-3-FibPeriod);  //+MAX*10*TFK
   if (NewTime!=iTime(NULL,1,0)) { limit=Bars-3; NewTime=iTime(NULL,1,0); }  //Time[0]

   for (int i=0; i<2; i++) { 
        SetIndexEmptyValue(i,0.0);        //--- значение 0 отображаться не будет 
        SetIndexDrawBegin(i,FibPeriod*1); } //--- пропуск отрисовки первых баров  

   for (i=limit; i>=0; i--) {

      WWBuffer1[i]=0;   WWBuffer1[i] = getPeriodHigh(FibPeriod,i);
      WWBuffer2[i]=0;   WWBuffer2[i] = getPeriodLow(FibPeriod,i);

      if (ShowStartLine)
      {ObjectSet(PREF+"FibLevels", OBJPROP_TIME1, Time[BarShift]);
       ObjectSet(PREF+"FibLevels", OBJPROP_TIME2, Time[BarShift2]);}
      if (!ShowStartLine)
      {ObjectSet(PREF+"FibLevels", OBJPROP_TIME1, StartZoneTime);}
      ObjectSet(PREF+"FibLevels", OBJPROP_TIME2, Time[0]);
      if (Open[FibPeriod] < Open[0]) // Up
      { 
     

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

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

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

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

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

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

Стоимость полного кода
966,80₽ ≈ $11.82