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

Рейтинг 2146



РЕКОМЕНДУЮ



Умоляю создать сова по скальпинговому индюку

SupportResistance M1.ex4 (59 Kb)
Добрый день. Прошу создать советника по скальпинговому индюку. Вручную отрабатывает на ура, на минутке, но дополняю его фибо, пивотами и сильными уровнями. В советнике это громоздко.
Суть — цена коснулась (не дошла на n пунктов, выставляется опционально) резистенс — продаём. И обратный сигнал либо выход при достижения n пунктов от безубытка.
Всё гениальное — просто
  • +1
  • Просмотров: 1284
  • 28 марта 2023, 14:53
  • walter8319
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
#property indicator_chart_window
#property indicator_buffers 8
//#property indicator_color1 Yellow
//#property indicator_color2 Yellow
//#property indicator_color3 LimeGreen
//#property indicator_color4 LimeGreen
//#property indicator_color5 Blue
//#property indicator_color6 Blue
//#property indicator_color7 Red
//#property indicator_color8 Red
//---- enum parameters
enum calcPRC { HighLow, OpenClose };
//---- input parameters
extern calcPRC CalcPrices = HighLow;
extern ENUM_TIMEFRAMES Period1 = PERIOD_M15,
Period2 = PERIOD_H1,
Period3 = PERIOD_H4,
Period4 = PERIOD_D1;
extern calcPRC DrawPrices = HighLow;
extern color color1 = clrYellow,
color2 = clrLimeGreen,
color3 = clrDeepSkyBlue, //DodgerBlue,
color4 = clrMagenta;
extern int SRcode1 = 158,
SRcode2 = 167,
SRcode3 = 115,
SRcode4 = 171,
SRsize1 = 2,
SRsize2 = 2,
SRsize3 = 3,
SRsize4 = 3;

double Ress1[], Supp1[];
double Ress2[], Supp2[];
double Ress3[], Supp3[];
double Ress4[], Supp4[];
int init()
{
Period1 = fmax(Period1,_Period);
Period2 = fmax(Period2,_Period);
Period3 = fmax(Period3,_Period);
Period4 = fmax(Period4,_Period);
IndicatorBuffers(8); IndicatorDigits(Digits);
// SetIndexBuffer(0,Ress1);
// SetIndexStyle(0,DRAW_ARROW,EMPTY,SRsize1,color1); SetIndexArrow(0, SRcode1);
// SetIndexDrawBegin(0,Period1); SetIndexLabel(0,stringMTF(Period1)+": Resistance1"); //«Resistance M15»);
// SetIndexBuffer(1,Supp1);
// SetIndexStyle(1,DRAW_ARROW,EMPTY,SRsize1,color1); SetIndexArrow(1, SRcode1);
// SetIndexDrawBegin(1,Period1); SetIndexLabel(1,stringMTF(Period1)+": Support1"); //«Support M15»);
SetIndexBuffer(2,Ress2);
SetIndexStyle(2,DRAW_ARROW,EMPTY,SRsize2,Red); SetIndexArrow(2, SRcode2);
SetIndexDrawBegin(2,Period1); SetIndexLabel(2,stringMTF(Period2)+": Resistance2"); //«Resistance H1»);
SetIndexBuffer(3,Supp2);
SetIndexStyle(3,DRAW_ARROW,EMPTY,SRsize2,SkyBlue); SetIndexArrow(3, SRcode2);
SetIndexDrawBegin(3,Period1); SetIndexLabel(3,stringMTF(Period2)+": Support2"); //«Support H1»);
SetIndexBuffer(4,Ress3);
SetIndexStyle(4,DRAW_ARROW,EMPTY,2,DarkRed); SetIndexArrow(4, SRcode3);
SetIndexDrawBegin(4,Period1); SetIndexLabel(4,stringMTF(Period3)+": Resistance3"); //«Resistance H4»);
SetIndexBuffer(5,Supp3);
SetIndexStyle(5,DRAW_ARROW,EMPTY,SRsize3,DarkBlue); SetIndexArrow(5, SRcode3);
SetIndexDrawBegin(5,Period1); SetIndexLabel(5,stringMTF(Period3)+": Support3"); //«Support H4»);
// SetIndexBuffer(6,Ress4);
// SetIndexStyle(6,DRAW_ARROW,EMPTY,SRsize4,Yellow); SetIndexArrow(6, SRcode4);
// SetIndexDrawBegin(6,Period1); SetIndexLabel(6,stringMTF(Period4)+": Resistance4"); //Resistance D1");
// SetIndexBuffer(7,Supp4);
// SetIndexStyle(7,DRAW_ARROW,EMPTY,SRsize4,color4); SetIndexArrow(7, SRcode4);
// SetIndexDrawBegin(7,Period1); SetIndexLabel(7,stringMTF(Period4)+": Support4"); //«Support D1»);
IndicatorShortName( WindowExpertName() +": "+ stringMTF(Period1)+" > "+stringMTF(Period2)+" > "+stringMTF(Period3)+" > "+stringMTF(Period4) );
return(0);
}
int deinit() { Comment(""); return(0); }
bool Fractal (string M, int P, int shift)
{
if (_Period>P) return(false);
P=P/_Period*2+MathCeil(P/_Period/2);
if (shift<P) return(false);
if (shift>Bars-P) return(false);
for (int i=1; i<=P; i++)
{
if (M==«U»)
{
if (CalcPrices==0)
{
if (High[shift+i] > High[shift]) return(false);
if (High[shift-i] >= High[shift]) return(false);
}
if (CalcPrices==1)
{
if ( fmax(Open[shift+i],Close[shift+i]) > fmax(Open[shift],Close[shift]) ) return(false);
if ( fmax(Open[shift-i],Close[shift-i]) >= fmax(Open[shift],Close[shift]) ) return(false);
}
}
if (M==«L»)
{
if (CalcPrices==0)
{
if (Low[shift+i] < Low[shift]) return(false);
if (Low[shift-i] <= Low[shift]) return(false);
}
if (CalcPrices==1)
{
if ( fmin(Open[shift+i],Close[shift+i]) < fmin(Open[shift],Close[shift]) ) return(false);
if ( fmin(Open[shift-i],Close[shift-i]) <= fmin(Open[shift],Close[shift]) ) return(false);
}
}
}
return(true);
}

int start()
{
int M15=Period1, H1=Period2, H4=Period3, D1=Period4; ///int D1=1440, H4=240, H1=60, M15=15;

int i=Bars;
while (i>=0)
{
// if (Fractal(«U»,M15,i)) Ress1[i] = DrawPrices==0? High[i]: fmax(Open[i],Close[i]);
// else Ress1[i] = Ress1[i+1];
// if (Fractal(«L»,M15,i)) Supp1[i] = DrawPrices==0? Low[i]: fmin(Open[i],Close[i]);
// else Supp1[i] = Supp1[i+1];
// if (Period2>Period1)
// {
if (Fractal(«U»,H1,i)) Ress2[i] = DrawPrices==0? High[i]: fmax(Open[i],Close[i]);
else Ress2[i] = Ress2[i+1];
if (Fractal(«L»,H1,i)) Supp2[i] = DrawPrices==0? Low[i]: fmin(Open[i],Close[i]);
else Supp2[i] = Supp2[i+1];
// }
if (Period3>Period1 && Period3!=Period2)
{
if (Fractal(«U»,H4,i)) Ress3[i] = DrawPrices==0? High[i]: fmax(Open[i],Close[i]);
else Ress3[i] = Ress3[i+1];
if (Fractal(«L»,H4,i)) Supp3[i] = DrawPrices==0? Low[i]: fmin(Open[i],Close[i]);
else Supp3[i] = Supp3[i+1];
}

if (Period4>Period1 && Period4!=Period3 && Period4!=Period2)
{
if (Fractal(«U»,D1,i)) Ress4[i] = DrawPrices==0? High[i]: fmax(Open[i],Close[i]);
else Ress4[i] = Ress4[i+1];
if (Fractal(«L»,D1,i)) Supp4[i] = DrawPrices==0? Low[i]: fmin(Open[i],Close[i]);
else Supp4[i] = Supp4[i+1];
}
i--;
}
return(0);
}
string stringMTF(int perMTF)
{
if (perMTF==0) perMTF=_Period;
if (perMTF==1) return(«M1»);
if (perMTF==5) return(«M5»);
if (perMTF==15) return(«M15»);
if (perMTF==30) return(«M30»);
if (perMTF==60) return(«H1»);
if (perMTF==240) return(«H4»);
if (perMTF==1440) return(«D1»);
if (perMTF==10080) return(«W1»);
if (perMTF==43200) return(«MN1»);
if (perMTF== 2 || 3 || 4 || 6 || 7 || 8 || 9 || /// нестандартные периоды для грфиков Renko
10 || 11 || 12 || 13 || 14 || 16 || 17 || 18) return(«M»+(string)_Period);
return(«Period error!»); //(«Ошибка периода»);
avatar

  8  Maxix Сообщений: 59

  • 28 марта 2023, 17:32
+
0
но слив 99%
avatar

  8  Maxix Сообщений: 59

  • 28 марта 2023, 17:33
+
0
Чот не компилируется(((((
avatar

  4  walter8319 Автор Сообщений: 100

  • 28 марта 2023, 18:22

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