Fakris Shokhibatul Ifran
Fakris Shokhibatul Ifran
  • Informações
4 anos
experiência
0
produtos
0
versão demo
0
trabalhos
0
sinais
0
assinantes
Fakris Shokhibatul Ifran
Fakris Shokhibatul Ifran
/*
Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
Website: http://purebeam.biz
E-mail : purebeam@gmail.com
*/

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Yellow

extern int SignalPeriod = 28;
int gi_80 = 0;
extern int NR_SLIPE = 3;
int g_applied_price_88 = PRICE_CLOSE;
extern double FilterNumber = 3.0;
bool gi_100 = TRUE;
int gi_104 = 0;
extern int lineWidth = 3;
extern int barsToDrawLine = 10000;
extern bool skipSingleBarSignal = FALSE;
extern int aTake_Profit = 150;
extern int aStop_Loss = 150;
extern bool aAlerts = TRUE;
extern bool EmailOn = TRUE;
datetime g_time_136;
string gs_148;
string gs_156 = "fx_NR_Scalping";
double g_ibuf_164[];
double g_ibuf_168[];
double g_ibuf_172[];
double g_ibuf_176[];
int gi_180;
string gs_184;
int gi_unused_192 = 0;

string GetTimeFrameStr() {
string l_timeframe_4;
switch (Period()) {
case PERIOD_M1:
l_timeframe_4 = "M1";
break;
case PERIOD_M5:
l_timeframe_4 = "M5";
break;
case PERIOD_M15:
l_timeframe_4 = "M15";
break;
case PERIOD_M30:
l_timeframe_4 = "M30";
break;
case PERIOD_H1:
l_timeframe_4 = "H1";
break;
case PERIOD_H4:
l_timeframe_4 = "H4";
break;
case PERIOD_D1:
l_timeframe_4 = "D1";
break;
case PERIOD_W1:
l_timeframe_4 = "W1";
break;
case PERIOD_MN1:
l_timeframe_4 = "MN1";
break;
default:
l_timeframe_4 = Period();
}
return (l_timeframe_4);
}

void DisplayAlert(string as_0, double ad_8, double ad_16, double ad_24) {
string ls_32;
string ls_40;
string ls_48;
string ls_56;
if (Time[0] != g_time_136) {
g_time_136 = Time[0];
if (gs_148 != as_0) {
gs_148 = as_0;
if (ad_8 != 0.0) ls_48 = " @ Price " + DoubleToStr(ad_8, 4);
else ls_48 = "";
if (ad_16 != 0.0) ls_40 = ", TakeProfit " + DoubleToStr(ad_16, 4);
else ls_40 = "";
if (ad_24 != 0.0) ls_32 = ", StopLoss " + DoubleToStr(ad_24, 4);
else ls_32 = "";
ls_56 = gs_184 + "Scalping " + aRperiodf() + " Alert " + as_0
+ "\n"
+ as_0 + ls_48 + ls_40 + ls_32
+ "\nDate & Time = " + TimeToStr(TimeCurrent(), TIME_DATE) + " " + TimeHour(TimeCurrent()) + ":" + TimeMinute(TimeCurrent()) + " ";
Alert(ls_56, Symbol(), ", ", Period(), " minutes chart");
PlaySound("alert.wav");
if (EmailOn) SendMail(gs_184, ls_56);
}
}
}

int init() {
IndicatorBuffers(4);
SetIndexBuffer(0, g_ibuf_164);
SetIndexBuffer(1, g_ibuf_168);
SetIndexBuffer(2, g_ibuf_172);
SetIndexBuffer(3, g_ibuf_176);
if (gi_100) {
SetIndexStyle(0, DRAW_ARROW, EMPTY, lineWidth - 3);
SetIndexStyle(1, DRAW_ARROW, EMPTY, lineWidth - 3);
SetIndexStyle(2, DRAW_ARROW, EMPTY, lineWidth - 3);
SetIndexArrow(0, 159);
SetIndexArrow(1, 159);
SetIndexArrow(2, 159);
} else {
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
}
gi_180 = SignalPeriod + MathFloor(MathSqrt(SignalPeriod));
SetIndexDrawBegin(0, gi_180);
SetIndexDrawBegin(1, gi_180);
SetIndexDrawBegin(2, gi_180);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1.0);
IndicatorShortName("Scalping(" + SignalPeriod + ")");
SetIndexLabel(0, "Scalping");
gs_184 = Symbol() + " (" + GetTimeFrameStr() + "): ";
gs_148 = "";
ArrayInitialize(g_ibuf_164, EMPTY_VALUE);
ArrayInitialize(g_ibuf_172, EMPTY_VALUE);
ArrayInitialize(g_ibuf_168, EMPTY_VALUE);
return (0);
}

int deinit() {
DelObj();
return (0);
}

int start() {
double l_ima_on_arr_20;
int li_unused_28;
int l_ind_counted_8 = IndicatorCounted();
if (l_ind_counted_8 < 1) {
for (int li_4 = 0; li_4 <= gi_180; li_4++) g_ibuf_176[Bars - li_4] = 0;
for (li_4 = 0; li_4 <= SignalPeriod; li_4++) {
g_ibuf_164[Bars - li_4] = EMPTY_VALUE;
g_ibuf_168[Bars - li_4] = EMPTY_VALUE;
g_ibuf_172[Bars - li_4] = EMPTY_VALUE;
}
}
int li_0 = Bars - l_ind_counted_8;
for (li_4 = 1; li_4 < li_0; li_4++) g_ibuf_176[li_4] = 2.0 * iMA(NULL, 0, MathFloor(SignalPeriod / FilterNumber), gi_80, NR_SLIPE, g_applied_price_88, li_4) - iMA(NULL, 0, SignalPeriod, gi_80, NR_SLIPE, g_applied_price_88, li_4);
double l_ima_on_arr_12 = iMAOnArray(g_ibuf_176, 0, MathFloor(MathSqrt(SignalPeriod)), 0, NR_SLIPE, 1);
for (li_4 = 2; li_4 < li_0 + 1; li_4++) {
l_ima_on_arr_20 = iMAOnArray(g_ibuf_176, 0, MathFloor(MathSqrt(SignalPeriod)), 0, NR_SLIPE, li_4);
li_unused_28 = 0;
if (l_ima_on_arr_20 > l_ima_on_arr_12) {
g_ibuf_172[li_4 - 1] = l_ima_on_arr_12 - gi_104 * Point;
li_unused_28 = 1;
} else {
if (l_ima_on_arr_20 < l_ima_on_arr_12) {
g_ibuf_164[li_4 - 1] = l_ima_on_arr_12 + gi_104 * Point;
li_unused_28 = 2;
} else {
g_ibuf_164[li_4 - 1] = EMPTY_VALUE;
g_ibuf_168[li_4 - 1] = l_ima_on_arr_12;
g_ibuf_172[li_4 - 1] = EMPTY_VALUE;
li_unused_28 = 3;
}
}
if (l_ind_counted_8 > 0) {
}
l_ima_on_arr_12 = l_ima_on_arr_20;
}
if (li_0 > barsToDrawLine) li_0 = barsToDrawLine;
for (li_4 = 2; li_4 <= li_0; li_4++) {
if (g_ibuf_164[li_4 - 1] != EMPTY_VALUE) {
if (g_ibuf_164[li_4] != EMPTY_VALUE) drawLineSegment(li_4 - 1, li_4, 1);
else drawLineSegment(li_4 - 1, li_4, 10);
}
if (g_ibuf_172[li_4 - 1] != EMPTY_VALUE) {
if (g_ibuf_172[li_4] != EMPTY_VALUE) drawLineSegment(li_4 - 1, li_4, -1);
else drawLineSegment(li_4 - 1, li_4, -10);
}
}
if (aAlerts) {
if ((skipSingleBarSignal == FALSE && g_ibuf_172[1] != EMPTY_VALUE && g_ibuf_172[2] == EMPTY_VALUE) || (skipSingleBarSignal == TRUE && g_ibuf_172[1] != EMPTY_VALUE &&
g_ibuf_172[2] != EMPTY_VALUE && g_ibuf_172[3] == EMPTY_VALUE)) DisplayAlert("Sell signal", Close[1], aGetTPs(), aGetSLs());
if ((skipSingleBarSignal == FALSE && g_ibuf_164[1] != EMPTY_VALUE && g_ibuf_164[2] == EMPTY_VALUE) || (skipSingleBarSignal == TRUE && g_ibuf_164[1] != EMPTY_VALUE &&
g_ibuf_164[2] != EMPTY_VALUE && g_ibuf_164[3] == EMPTY_VALUE)) DisplayAlert("Buy signal", Close[1], aGetTPl(), aGetSLl());
}
return (0);
}

double aGetTPs() {
return (Bid - aTake_Profit * Point);
}

double aGetTPl() {
return (Ask + aTake_Profit * Point);
}

double aGetSLs() {
return (Bid + aStop_Loss * Point);
}

double aGetSLl() {
return (Ask - aStop_Loss * Point);
}

int aRperiodf() {
return (10000.0 * (SignalPeriod * Point));
}

void DelObj() {
string l_name_0;
int l_str_len_12;
for (int li_8 = ObjectsTotal() - 1; li_8 >= 0; li_8--) {
l_name_0 = ObjectName(li_8);
l_str_len_12 = StringLen(gs_156);
if (StringSubstr(l_name_0, 0, l_str_len_12) == gs_156) ObjectDelete(l_name_0);
}
}

void drawLineSegment(int ai_0, int ai_4, int ai_8) {
double l_price_20;
double l_price_28;
color l_color_36;
if (ai_8 > 0) {
l_price_20 = g_ibuf_164[ai_0];
if (ai_8 == 1) l_price_28 = g_ibuf_164[ai_4];
else l_price_28 = g_ibuf_172[ai_4];
l_color_36 = Blue;
} else {
l_price_20 = g_ibuf_172[ai_0];
if (ai_8 == -1) l_price_28 = g_ibuf_172[ai_4];
else l_price_28 = g_ibuf_164[ai_4];
l_color_36 = Yellow;
}
int l_time_12 = Time[ai_0];
int l_time_16 = Time[ai_4];
if (l_price_20 == EMPTY_VALUE || l_price_28 == EMPTY_VALUE) {
Print("Empty value for price line encountered!");
return;
}
string l_name_40 = gs_156 + "_segment_" + l_color_36 + l_time_12 + "_" + l_time_16;
ObjectDelete(l_name_40);
ObjectCreate(l_name_40, OBJ_TREND, 0, l_time_12, l_price_20, l_time_16, l_price_28, 0, 0);
ObjectSet(l_name_40, OBJPROP_WIDTH, lineWidth);
ObjectSet(l_name_40, OBJPROP_COLOR, l_color_36);
ObjectSet(l_name_40, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(l_name_40, OBJPROP_RAY, FALSE);
}
Fakris Shokhibatul Ifran
Registrado no site MQL5.community