! smartmoney fractal levels v3.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «! smartmoney fractal levels v3.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор предназначен для расчёта и визуализации фрактальных уровней ценовых данных на графике MetaTrader 5. Он вычисляет три уровня фракталов на основе максимумов и минимумов свечей и отображает их в виде стрелок и линий тренда.
Уровень 1 представляет базовые фракталы, определяемые по заданному количеству баров слева и справа. Уровни 2 и 3 вычисляются как «мажорные» фракталы, выявляемые по последовательностям фракталов предыдущего уровня. Каждый уровень можно отображать независимо с настраиваемыми цветами, толщиной и типом маркеров.
Индикатор позволяет рисовать горизонтальные линии от фракталов, ограничивать их отображение только активными или определёнными уровнями, а также продлевать линии тренда до нулевого бара. Дополнительно доступна настройка типа стрелок (круги, стрелки, треугольники) и отображение информационных комментариев на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| FractalBars_LeftRight | Количество баров слева и справа для определения базового фрактала |
| FractalArrows_Type | Тип маркеров фракталов: круги, стрелки или треугольники |
| Draw_Fractals_WithoutLines | Отключение отрисовки линий фракталов (только стрелки) |
| sLevels | Текстовый параметр-заголовок для раздела уровней фракталов |
| Draw_Level1_Arrows | Отображение стрелок фрактала уровня 1 |
| Draw_Level2_Arrows | Отображение стрелок фрактала уровня 2 |
| Draw_LastLevel2_TrendLines | Продление последних линий тренда уровня 2 до нулевого бара |
| Draw_Level3_Arrows | Отображение стрелок фрактала уровня 3 |
| TrendLines_Width | Толщина линий тренда |
| TrendLines_Style | Стиль линий тренда |
| sFractalLines | Текстовый параметр-заголовок для раздела линий фракталов |
| DrawOnly_Level23Lines | Отрисовка горизонтальных линий только для фракталов уровней 2 и 3 |
| DrawOnly_AliveLines | Отображение линий фракталов только до ближайшего фрактала (активных линий) |
| EndOfLines | Условие определения конца линии фрактала: по верхней/нижней точке свечи или по телу свечи |
| FractalLines_Width | Толщина линий фракталов |
| FractalLines_Style | Стиль линий фракталов |
| Color_UpperFractal_Lines | Цвет верхних линий фракталов |
| Color_LowerFractal_Lines | Цвет нижних линий фракталов |
| sArrows | Текстовый параметр-заголовок для раздела стрелок |
| Arrow_Level1_Width | Толщина стрелок уровня 1 |
| Arrow_Level1_Color_UP | Цвет стрелок уровня 1, указывающих на восходящий фрактал |
| Arrow_Level1_Color_DN | Цвет стрелок уровня 1, указывающих на нисходящий фрактал |
| Arrow_Level2_Width | Толщина стрелок уровня 2 |
| Arrow_Level2_Color_UP | Цвет стрелок уровня 2, указывающих на восходящий фрактал |
| Arrow_Level2_Color_DN | Цвет стрелок уровня 2, указывающих на нисходящий фрактал |
| Arrow_Level3_Width | Толщина стрелок уровня 3 |
| Arrow_Level3_Color_UP | Цвет стрелок уровня 3, указывающих на восходящий фрактал |
| Arrow_Level3_Color_DN | Цвет стрелок уровня 3, указывающих на нисходящий фрактал |
| Show_Comments | Отображение информационных комментариев на графике |
| MaximumBarsBack | Максимальное количество баров назад для расчёта фракталов |
Поиск по коду файла
#property strict
#include <stdlib.mqh>
#include <WinUser32.mqh>
/*+------------------------------------------------------------------+
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
#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 =2;
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=clrBlue;
sinput color Arrow_Level1_Color_DN=clrRed;
sinput int Arrow_Level2_Width =2;
sinput color Arrow_Level2_Color_UP=clrBlue;
sinput color Arrow_Level2_Color_DN=clrRed;
sinput int Arrow_Level3_Width =4;
sinput color Arrow_Level3_Color_UP=clrBlue;
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="objFL_";
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==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==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]Показано первые 50% кода (символов: 11589)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.