Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от serqww



Индикатор для МТ4 Комментариев 12
2023-01-16 16:08:58Рейтинг 0

Создать индикатор с двумя буферными линиями

Здравствуйте!
Прошу создать индикатор для МТ4 с двумя буферными!!! линиями
1. Первая линия формируется по свинг хаю (high предыдущей свечи(1) ниже High текущей свечи(2) и последующий High ниже предыдущей (3) и после каждой такой комбинации появляется трендовая линия по high центральной свечи(2) и продолжает свое движение вправо до момента когда Close свечи становится выше трендовой линии (скриншот 1) Если по ходу движения линии High свечей будет выше линии линия продолжает свое движение до моменты как описано выше пока Close свечи не будет выше линии.
2. Вторая линия формируется по свинг лоу. (скриншот 2)
3 Линии ОБЯЗАТЕЛЬНО!!! должны быть буферные

СПАСИБО!

Srinshot 1.png (64 Kb)

Skrinshot 2.png (59 Kb)
  • 0
  • Просмотров: 1196
  • 17 сентября 2022, 18:47
  • serqww
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Доработка советника для mt5
Следующая запись в группе  
Советник по Donchian Channel
16 сентября 2022
18 сентября 2022

Брокер для ваших роботов, 15 лет на рынке

Комментарии (9)

комментарий был удален 2022-09-17 18:49:52 serqww

+
0


avatar

  35  AM2 Сообщений: 16258 - Андрей

  • 17 сентября 2022, 22:56
+
0
не берусь
avatar

  35  AM2 Сообщений: 16258 - Андрей

  • 17 сентября 2022, 22:58
+
0
А если чтобы просто горизонтальная линия появлялась по High 1(центральной) свечи при текущем совпадении условий hihg 2 свечи ниже High 1 свечи и если high 0 свечи ниже High 1 свечи но чтобы буферная была линия. И по Low также


Редактирован: 17 сентября 2022, 23:21
avatar

  11  serqww Автор Сообщений: 63

  • 17 сентября 2022, 23:12
+
0
сделал такой вариант: www.opentraders.ru/downloads/3399/

avatar

  35  AM2 Сообщений: 16258 - Андрей

  • 18 сентября 2022, 09:32
+
0
Спасибо! Не то что хотел но нашел альтернативный вариант
avatar

  11  serqww Автор Сообщений: 63

  • 18 сентября 2022, 11:25
+
0
а что нашел можно посмотреть?
avatar

  35  AM2 Сообщений: 16258 - Андрей

  • 18 сентября 2022, 11:44
+
0
//+------------------------------------------------------------------+
//| iFractals.mq4 |
//| Copyright © 2008, lotos4u |
//| lotos4u@gmail.com |
//+------------------------------------------------------------------+
#property copyright «Copyright © 2008, lotos4u»
#property link «lotos4u@gmail.com»

#property indicator_chart_window
#property indicator_buffers 6

#property indicator_width1 4
#property indicator_width2 4
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 2
#property indicator_width6 2

#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 Gold
#property indicator_color5 White
#property indicator_color6 White

extern int LeftBars = 2;
extern int RightBars = 2;

double LineUpBuffer1[];
double LineDownBuffer2[];
double ArrowUpBuffer3[];
double ArrowDownBuffer4[];
double ArrowBreakUpBuffer5[];
double ArrowBreakDownBuffer6[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexArrow(0, 158);
SetIndexBuffer(0, LineUpBuffer1);
SetIndexEmptyValue(0, 0.0);
SetIndexLabel(0, «Фрактальное сопротивление»);
SetIndexStyle(1, DRAW_LINE);
SetIndexArrow(1, 158);
SetIndexBuffer(1, LineDownBuffer2);
SetIndexEmptyValue(1, 0.0);
SetIndexLabel(1, «Фрактальная поддержка»);

SetIndexStyle(2, DRAW_ARROW);
SetIndexArrow(2, 119);
//SetIndexArrow(2, 217);
SetIndexBuffer(2, ArrowUpBuffer3);
SetIndexEmptyValue(2, 0.0);
SetIndexLabel(2, «Фрактал ВЕРХ»);
SetIndexStyle(3, DRAW_ARROW);
SetIndexArrow(3, 119);
//SetIndexArrow(3, 218);
SetIndexBuffer(3, ArrowDownBuffer4);
SetIndexEmptyValue(3, 0.0);
SetIndexLabel(3, «Фрактал ВНИЗ»);

SetIndexStyle(4, DRAW_ARROW);
SetIndexArrow(4, 119);
//SetIndexArrow(4, 217);
SetIndexBuffer(4, ArrowBreakUpBuffer5);
SetIndexEmptyValue(4, 0.0);
SetIndexLabel(4, «Пробой ВВЕРХ»);
SetIndexStyle(5, DRAW_ARROW);
SetIndexArrow(5, 119);
//SetIndexArrow(5, 218);
SetIndexBuffer(5, ArrowBreakDownBuffer6);
SetIndexEmptyValue(5, 0.0);
SetIndexLabel(5, «Пробой ВНИЗ»);

return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit(){return(0);}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
int limit = Bars — counted_bars;
if(counted_bars==0) limit-=1+MathMax(LeftBars,RightBars);

for(int i = limit-1; i >= 0; i--)
{
LineUpBuffer1[i] = isFractalUp(i, LeftBars, RightBars,limit);
if(LineUpBuffer1[i] == 0)
LineUpBuffer1[i] = LineUpBuffer1[i+1];
else
ArrowUpBuffer3[i] = LineUpBuffer1[i];
LineDownBuffer2[i] = isFractalDown(i, LeftBars, RightBars,limit);
if(LineDownBuffer2[i] == 0)
LineDownBuffer2[i] = LineDownBuffer2[i+1];
else
ArrowDownBuffer4[i] = LineDownBuffer2[i];
if(Close[i] < LineDownBuffer2[i] && Close[i+1] >= LineDownBuffer2[i+1])
ArrowBreakDownBuffer6[i] = Close[i];
}
//LineUpBuffer1[-1] = LineUpBuffer1[0];
//LineDownBuffer2[-1] = LineDownBuffer2[0];
return(0);
}

double isFractalUp(int index, int lBars, int rBars, int maxind)
{
int left = lBars, right = rBars;
double max = High[index]; //Принимаем за максимум значение Хая исследуемого бара
for(int i = index — right; i <= (index + left); i++)
{
if (i<0 || i>maxind) return(0);
if(!(High[i] > 0.0))return(0);
if(max < High[i] && i != index)
{
if(max < High[i]) return(0);
if(MathAbs(i — index) > 1) return(0);
}
}
return(max);
}

double isFractalDown(int index, int lBars, int rBars, int maxind)
{
int left = lBars, right = rBars;
double min = Low[index], test;
for(int i = index — right; i <= (index + left); i++)
{
if (i<0 || i>maxind) return(0);
if(!(Low[i] > 0.0))return(0);
//if(min >= Low[i] && i != index)
if(min > Low[i] && i != index)
{
if(min > Low[i])
return(0);

if(MathAbs(i — index) > 1)
return(0);
}

}
return(min);
}
avatar

  11  serqww Автор Сообщений: 63

  • 18 сентября 2022, 15:42
+
0
avatar

  11  andre71g Сообщений: 168 - andre71g

  • 18 сентября 2022, 18:18

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий