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

smFractalLevels-OnCloses

smfractallevels-oncloses_v1.1.mq5
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
FractalBars_LeftRight Количество баров слева и справа, учитываемых при определении фрактала.
FractalArrows_Type Форма отображения стрелок фракталов: круги, стрелки, треугольники или без отображения.
Draw_Fractals_WithoutLines Если включено, фракталы отображаются без построения горизонтальных линий.
sLevels Разделительный заголовок группы настроек фрактальных уровней.
Draw_Level1_Arrows Если включено, отображаются стрелки фракталов первого уровня.
Draw_Level2_Arrows Если включено, отображаются стрелки фракталов второго уровня.
Draw_LastLevel2_TrendLines Если включено, строятся трендовые линии по последним фракталам второго уровня.
Draw_Level3_Arrows Если включено, отображаются стрелки фракталов третьего уровня.
TrendLines_Width Толщина трендовых линий, строящихся по фракталам второго уровня.
TrendLines_Style Стиль трендовых линий, строящихся по фракталам второго уровня.
sFractalLines Разделительный заголовок группы настроек линий фракталов.
DrawOnly_Level23Lines Если включено, горизонтальные линии строятся только для фракталов второго и третьего уровней.
DrawOnly_AliveLines Если включено, отображаются только линии, которые ещё не были перекрыты последующими барами.
EndOfLines Определяет, по какой части свечи завершается горизонтальная линия фрактала: по максимуму и минимуму или по телу свечи.
FractalLines_Width Толщина линий горизонтальных фракталов.
FractalLines_Style Стиль линий горизонтальных фракталов.
Color_UpperFractal_Lines Цвет горизонтальных линий, построенных по восходящим фракталам.
Color_LowerFractal_Lines Цвет горизонтальных линий, построенных по нисходящим фракталам.
sArrows Разделительный заголовок группы настроек стрелок.
Arrow_Level1_Width Толщина стрелок фракталов первого уровня.
Arrow_Level1_Color_UP Цвет стрелок восходящих фракталов первого уровня.
Arrow_Level1_Color_DN Цвет стрелок нисходящих фракталов первого уровня.
Arrow_Level2_Width Толщина стрелок фракталов второго уровня.
Arrow_Level2_Color_UP Цвет стрелок восходящих фракталов второго уровня.
Arrow_Level2_Color_DN Цвет стрелок нисходящих фракталов второго уровня.
Arrow_Level3_Width Толщина стрелок фракталов третьего уровня.
Arrow_Level3_Color_UP Цвет стрелок восходящих фракталов третьего уровня.
Arrow_Level3_Color_DN Цвет стрелок нисходящих фракталов третьего уровня.
Show_Comments Если включено, в окне графика отображается краткая информация об индикаторе.
MaximumBarsBack Максимальное количество баров истории, обрабатываемых индикатором.
Получить полный код

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

#property strict

#include <stdlib.mqh>
#include <WinUser32.mqh>

/*+------------------------------------------------------------------+
smFractalLevels
23.04.2019  v1 - First version, with horizontal fractal lines
27.04.2019  v2 - H-Lines only for fractals Level2/3   yes/no
28.04.2019  v3 - Disable the draw of Level-1 arrows
smFractalLevels-OnCloses
03.05.2019  v3 - Replace High/Low with Close

#property indicator_chart_window

#property indicator_buffers 6

enum ENUM_ARROWS_TYPE
  {
   Circles,
   Arrows,
   Triangles,
   NONE
  };

enum ENUM_STOP_LINE
  {
   Candle_HighLow,
   Candle_Body
  };

input int               FractalBars_LeftRight   =1;
sinput ENUM_ARROWS_TYPE FractalArrows_Type      =Circles;
input bool              Draw_Fractals_WithoutLines=false;
sinput string           sLevels="Fractal levels 1, 2 and 3"; //=================================
input bool              Draw_Level1_Arrows      =false;
input bool              Draw_Level2_Arrows      =true;
sinput bool             Draw_LastLevel2_TrendLines=true;
input bool              Draw_Level3_Arrows      =true;
input int               TrendLines_Width        =4;
input ENUM_LINE_STYLE   TrendLines_Style        =STYLE_SOLID;
sinput string           sFractalLines="Fractal lines"; //=================================
input bool              DrawOnly_Level23Lines   =true;
input bool              DrawOnly_AliveLines     =false;
input ENUM_STOP_LINE    EndOfLines              =Candle_HighLow;
input int               FractalLines_Width      =1;
input ENUM_LINE_STYLE   FractalLines_Style      =STYLE_SOLID;
input color             Color_UpperFractal_Lines=clrDodgerBlue;
input color             Color_LowerFractal_Lines=clrMagenta;
sinput string           sArrows="ARROWS"; //=================================                                          
sinput int   Arrow_Level1_Width   =2;
sinput color Arrow_Level1_Color_UP=clrAqua;
sinput color Arrow_Level1_Color_DN=clrRed;
sinput int   Arrow_Level2_Width   =2;
sinput color Arrow_Level2_Color_UP=clrAqua;
sinput color Arrow_Level2_Color_DN=clrRed;
sinput int   Arrow_Level3_Width   =4;
sinput color Arrow_Level3_Color_UP=clrAqua;
sinput color Arrow_Level3_Color_DN=clrRed;

input bool Show_Comments=true;
input int MaximumBarsBack=500;

int Equals=3; //5;
int nLeftUp=1; //2;
int nRightUp=1; //2;
int nLeftDown=1; //2;
int nRightDown=1; //2;
/*=================================================================*/

string objTS="objFLC_";
string CR="\n";

double Fractal1_UP[],Fractal2_UP[],Fractal3_UP[];
double Fractal1_DN[],Fractal2_DN[],Fractal3_DN[];

int cntup=0,cntdown=0,cnt=0;
int r=0,l=0,e=0;
int fup=0,fdown=0;
string shortName;
int nBars;

int ArrowCode1_UP,ArrowCode1_DN; //Level 1

int ArrowCode2_UP=164;  //Level 2 - Circle with MiddlePoint
int ArrowCode2_DN=164;
int ArrowCode3_UP=168;  //Level 3 - Rectangle
int ArrowCode3_DN=168;

datetime thisTime,oldTime;

double dailyADR,maxChannelHeight;
datetime lastTime1,lastTime2;
double lastPrice1,lastPrice2;

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

int deinit()
  {
   ObjectsDeleteAll(0,objTS);
   Comment("");

   return(0);
  }

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[])
  {
      // код доступен только после оплаты
   }

void Draw_FractalLines()
  {
   int iBar1=0,iBar2=0;
   double dPrice1=0,dPrice2=0;

   ObjectsDeleteAll(0,objTS);

   for(int i=0;i<=nBars-5;i++)
     {

      if(Fractal1_UP[i]!=EMPTY_VALUE && Fractal1_UP[i]!=0)
        {

         if(DrawOnly_Level23Lines==false || (DrawOnly_Level23Lines==true && (Fractal2_UP[i]!=EMPTY_VALUE || Fractal3_UP[i]!=EMPTY_VALUE)))
           {
            iBar1=i;
            dPrice1=Fractal1_UP[i];

            iBar2=0;
            for(int j=iBar1-1;j>=0;j--)
              {
               if(EndOfLines==Candle_HighLow)
                 {
                  if(dPrice1<High[j] && dPrice1>Low[j])
                    {
                     iBar2=j;
                     break;
                    }
                 }
               else
               if(EndOfLines==Candle_Body)
                 {
                  double maxBody=MathMax(Open[j],Close[j]);
                  double minBody=MathMin(Open[j],Close[j]);
                  if(dPrice1<maxBody && dPrice1>minBody)
                    {
                     iBar2=j;
                     break;
                    }
                 }
              }
            if((DrawOnly_AliveLines==false) || (DrawOnly_AliveLines==true && iBar2==0))
               Paint_TrendLine(iBar1,dPrice1,iBar2,dPrice1,Color_UpperFractal_Lines,FractalLines_Width,FractalLines_Style,"up");
           }
        }
     }

   for(int i=0;i<=nBars-5;i++)
     {
      if(Fractal1_DN[i]!=EMPTY_VALUE && Fractal1_DN[i]!=0)
        {
         if(DrawOnly_Level23Lines==false || (DrawOnly_Level23Lines==true && (Fractal2_DN[i]!=EMPTY_VALUE || Fractal3_DN[i]!=EMPTY_VALUE)))
           {
            iBar1=i;
            dPrice1=Fractal1_DN[i];

            iBar2=0;
            for(int j=iBar1-1;j>=0;j--)
              {
               if(EndOfLines==Candle_HighLow)
                 {
                  if(dPrice1<High[j] && dPrice1>Low[j])
                    {
                     iBar2=j;
                     break;
                    }
  

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

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

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

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

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

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

Стоимость полного кода
1 216,90₽ ≈ $14.87