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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.