#property copyright "Copyright 2013, www.forex-monitor.com"
#property link "www.forex-monitor.com"
#import "Kernel32.dll"
void GetLocalTime(int& a0[]);
void GetSystemTime(int& a0[]);
int GetTimeZoneInformation(int& a0[]);
#import "wininet.dll"
int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
int InternetReadFile(int a0, string a1, int a2, int& a3[]);
int InternetCloseHandle(int a0);
#import
string var_g_s__76 = "http://www.forex-monitor.com/authenticate/";
bool var_g_i__84 = FALSE;
string var_g_s__88 = "2.1";
string var_g_s__dps_96 = "DPS";
//extern string Your_Email = "your@email.com";
extern int MagicNumber = 654654;
extern bool Auto_GMT = TRUE;
extern bool Calculate_DST = TRUE;
extern int Manual_GMT_Offset = -3;
extern double Auto_Risk = 75.0;
extern double Lots = 0.25;
extern int Slipage = 1;
extern int Max_Spread = 20;
extern int Stop_Loss = 40;
extern int Take_Profit = 75;
extern int Channel_Period = 20;
extern int Exit_Distance = -5;
extern int Entry_Break = 1;
extern int Min_Volatility = 20;
extern int Start_Trade_Hour = 20;
extern int End_Trade_Hour = 23;
extern int Exit_Profit_Pips = -5;
int var_g___period_188 = 2;
extern int Reverse_Profit = 30;
extern int Exit_Minutes = 30;
extern int Time_Profit_Pips = 2;
extern bool Trade_in_Monday =true;
extern bool Trade_in_Tuesday =false;
extern bool Trade_in_Wednesday=true;
extern bool Trade_in_Thursday=true;
extern bool Trade_in_Friday =false;
extern color background_color = Blue;
//extern string Comment_2 = "signalStoch";
//extern bool SignalStoch = true;
//extern int Stoch_k = 10;
//extern int Stoch_d = 3;
//extern int Stoch_slowing = 3;
//extern int Stoch_pricefield = 0;//Price field parameter. Can be one of this values: 0 - Low/High or 1 - Close/Close.
//extern int Stoch_shift = 0;// Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).
//extern int Stoch_lo = 30 ;
//extern int Stoch_up = 70 ;
extern string Comment_3 = "SignalMegaFX";
extern bool SignalMegaFX = true;
extern int PeriodMegaFX = 1 ;
int mper[10]={0,1,5,15,30,60,240,1440,10080,43200};
bool var_g_i__212 = TRUE;
int var_g_i__unused_216 = 0;
double var_g_d__unused_220 = 0.01;
double var_g___maxlot_228 = 0.01;
double var_g___lotstep_236 = 0.01;
int var_g_i__unused_244 = 100000;
double var_g___marginrequired_248 = 1000.0;
double var_g_d__256 = 0.0001;
bool var_g_i__264 = FALSE;
double var_g___minlot_268 = 0.0;
double var_g_d__unused_276 = 0.0;
int var_g_i__unused_284 = 0;
int var_g___lotsize_288 = 0;
int var_g___stoplevel_292 = 0;
int var_g_i__296 = 0;
int var_g_i__300 = 1;
string var_g_s__304 = "";
int var_g_i__312;
int var_g_i__316;
int var_g_i__320 = 0;
int var_g_i__324 = 1;
int td_unused_0 = 3;
int var_g_i__332 = 13;
int cmd_148,count_124;
void init() {
MathSrand(TimeLocal());
var_g_i__212 = TRUE;
var_g_i__84 = FALSE;
Comment("");
var_g_i__264 = TRUE;
}
int deinit() {
Comment("");
return (0);
}
void start() {
string var_l_s__8;
int var_l_i__16;
int var_l_i__20;
string var_l_s__24;
double lots_36;
string var_l_s__44;
string var_l_s__52;
int var_l_i__unused_56;
int slippage_60;
int slippage_64;
int var_l_i__68;
int var_l_i__72;
double var_l_d__76;
double var_l_d__84;
double ima_92;
double ima_100;
double var_l_d__108;
int ticket_116;
int count_120;
double price_132;
double price_140;
string var_l_s__152;
color color_160;
double price_164;
string var_l_s__0 = "";
double max = NormalizeDouble(iHigh(Symbol(),1440,0),Digits);
double min = NormalizeDouble(iLow (Symbol(),1440,0),Digits);
double opp=NormalizeDouble(iOpen(Symbol(),1440,0),Digits);
double cl=NormalizeDouble(iClose(Symbol(),1440,0),Digits);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// double dis =NormalizeDouble(Distanciya*Point,Digits);
double spred =NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits);
//double CORR=NormalizeDouble(Plus *Point,Digits);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
int sigup=0;
int sigdw=0;
if(cl>min) { double x=NormalizeDouble(cl*100/min-100,2); }
if(cl<max) { double y=NormalizeDouble(cl*100/max-100,2); }
double Procent =1.3;
if (Procent*(-1)<=y&&Close[1]>Open[1]){ sigup=1; sigdw=0; }
if (Procent >=x&&Close[1]<Open[1]){ sigup=0; sigdw=1; }
if (var_g_i__212) {
var_g_i__212 = FALSE;
var_g___stoplevel_292 = MarketInfo(Symbol(), MODE_STOPLEVEL);
var_g___minlot_268 = MarketInfo(Symbol(), MODE_MINLOT);
var_g___maxlot_228 = MarketInfo(Symbol(), MODE_MAXLOT);
var_g___lotsize_288 = MarketInfo(Symbol(), MODE_LOTSIZE);
var_g___lotstep_236 = MarketInfo(Symbol(), MODE_LOTSTEP);
var_g___marginrequired_248 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
if (Digits <= 3) var_g_d__256 = 0.01;
else var_g_d__256 = 0.0001;
var_g_i__296 = f0_4();
var_g_i__300 = NormalizeDouble(59.0 * (MathRand() / 32767.0), 0) + 1.0;
if (IsTesting()) Calculate_DST = FALSE;
if (IsTesting() || Auto_GMT == FALSE) var_g_i__296 = Manual_GMT_Offset;
if (!IsTesting() && Auto_GMT == TRUE && Calculate_DST == TRUE && (Month() > 3 && Month() < 11)) var_g_i__296--;
if (!IsTesting() && Auto_GMT == TRUE && Calculate_DST == TRUE && Month() <= 3 || Month() >= 11) {
}
if (!IsTesting() && Auto_GMT == TRUE && Calculate_DST == FALSE) {
}
}
if(!TimeFilter()) return (0);
if (!IsTesting() && IsDllsAllowed() == FALSE) {
Comment("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
Print("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
Sleep(30000);
return;
}
/*if ((!var_g_i__84) && !IsTesting()) {
if (f0_3(var_g_s__76 + "?email=" + Your_Email + "&robot=" + var_g_s__dps_96 + "&version=" + var_g_s__88, var_l_s__8)) {
if (StringTrimRight(StringTrimLeft(f0_2(var_l_s__8, 0, "<result>", "</result>", var_l_i__16))) == "OK") var_g_i__84 = TRUE;
else {
Comment("\n Authentication failure! Visit WWW.FOREX-MONITOR.COM and subscribe to activate your free copy!");
Alert("Authentication failure! Visit WWW.FOREX-MONITOR.COM and subscribe to activate your free copy!");
Sleep(30000);
return;
}
} else {
Comment("\n Authentication failed (error number " + DoubleToStr(GetLastError(), 0) + "). Contsct us: support@forex-monitor.com");
Alert("Authentication failed (error number " + DoubleToStr(GetLastError(), 0) + "). Contsct us: support@forex-monitor.com");
Sleep(30000);
return;
}
}*/
/*if ((Hour() == 0 || Hour() == 3 || Hour() == 6 || Hour() == 9 || Hour() == 12 || Hour() == 15 || Hour() == 18 || Hour() == 21 && Minute() == var_g_i__300) || var_g_i__264 && (!IsTesting()) &&
iVolume(NULL, PERIOD_M1, 0) <= 1.0) {
if (f0_3(var_g_s__76 + "?email=" + Your_Email + "&info=1&robot=" + var_g_s__dps_96 + "&version=" + var_g_s__88, var_l_s__8)) {
var_g_s__304 = StringTrimRight(StringTrimLeft(f0_2(var_l_s__8, 0, "<result>", "</result>", var_l_i__16)));
var_l_i__20 = f0_1(var_g_s__304, "#");
if (var_l_i__20 > 0) {
var_l_s__24 = "";
for (int count_32 = 0; count_32 < var_l_i__20 + 1; count_32++) {
var_l_s__24 = var_l_s__24
+ "\n " + f0_5(var_g_s__304, "#", count_32);
}
var_g_s__304 = var_l_s__24;
}
}
var_g_i__264 = FALSE;
}*/
if (Auto_Risk > 0.0) lots_36 = MathMax(var_g___minlot_268, MathMin(var_g___maxlot_228, MathCeil(MathMin(100, Auto_Risk) / 100.0 * AccountFreeMargin() / var_g___lotstep_236 / (var_g___lotsize_288 / 100)) * var_g___lotstep_236));
if (Auto_Risk == 0.0) lots_36 = Lots;
if (Auto_GMT) var_l_s__44 = "Auto GMT - ON";
else var_l_s__44 = "Auto GMT - OFF !!!";
if (IsTesting()) Calculate_DST = FALSE;
if (Calculate_DST == TRUE) var_l_s__52 = "YES";
if (Calculate_DST == FALSE) var_l_s__52 = "NO";
if (!IsTesting() && !IsOptimization())
{
var_l_s__0 = var_l_s__0
+ "\n ------------------------------------------"
+ "\n ROBO SCALPER X"
+ "\n ------------------------------------------"
+ "\n ------------------------------------------"
+ "\n USE ON M1 CHART"
+ "\n ------------------------------------------"
+ "\n " + var_l_s__44
+ "\n Calculate DST - " + var_l_s__52
+ "\n Broker GMT = " + var_g_i__296
+ "\n Stop Loss = " + Stop_Loss + " pips"
+ "\n Take Profit = " + Take_Profit + " pips"
+ "\n Spread = " + DoubleToStr((Ask - Bid) / var_g_d__256, 1) + " pips";
if (Ask - Bid > Max_Spread * var_g_d__256) var_l_s__0 = var_l_s__0 + " - HIGH !!!";
else var_l_s__0 = var_l_s__0 + " - In Norm";
if (Auto_Risk > 0.0) {
var_l_s__0 = var_l_s__0
+ "\n AutoRisk - Activated"
+ "\n Risk = " + DoubleToStr(Auto_Risk, 1) + "%";
}
var_l_s__0 = var_l_s__0
+ "\n Trading Lots = " + DoubleToStr(lots_36, 2);
var_l_s__0 = var_l_s__0
+ "\n ------------------------------------------";
var_l_s__0 = var_l_s__0
+ "\n REALTIME INFO & MARKET ADVISES:";
var_l_s__0 = var_l_s__0
+ "\n ...";
var_l_s__0 = var_l_s__0 + var_g_s__304;
bool Gi_596 = true;
int Li_84 = 11;
if (Gi_596 || Seconds() % 5 == 0) {
Gi_596 = FALSE;
for (int count_88 = 0; count_88 < 9; count_88++) {
for (int count_92 = 0; count_92 < Li_84; count_92++) {
ObjectDelete("background" + count_88 + count_92);
ObjectDelete("background" + count_88 + ((count_92 + 1)));
ObjectDelete("background" + count_88 + ((count_92 + 2)));
ObjectCreate("background" + count_88 + count_92, OBJ_LABEL, 0, 0, 0);
ObjectSetText("background" + count_88 + count_92, "n", 30, "Wingdings", background_color);
ObjectSet("background" + count_88 + count_92, OBJPROP_XDISTANCE, 20 * count_88);
ObjectSet("background" + count_88 + count_92, OBJPROP_YDISTANCE, 23 * count_92 + 9);
}
}
}
Comment(var_l_s__0);
}
if (IsTradeAllowed()) {
if (IsTradeContextBusy() == FALSE) {
slippage_60 = Slipage * var_g_d__256;
slippage_64 = Slipage * var_g_d__256;
if (Take_Profit < var_g___stoplevel_292 * Point / var_g_d__256) Take_Profit = var_g___stoplevel_292 * Point / var_g_d__256;
if (Stop_Loss < var_g___stoplevel_292 * Point / var_g_d__256) Stop_Loss = var_g___stoplevel_292 * Point / var_g_d__256;
var_l_i__68 = Start_Trade_Hour + var_g_i__296;
var_l_i__72 = End_Trade_Hour + var_g_i__296;
if (var_l_i__68 > 23) var_l_i__68 -= 24;
if (var_l_i__68 < 0) var_l_i__68 += 24;
if (var_l_i__72 > 23) var_l_i__72 -= 24;
if (var_l_i__72 < 0) var_l_i__72 += 24;
HideTestIndicators(TRUE);
var_l_d__76 = iMA(NULL, PERIOD_M15, Channel_Period, 0, MODE_SMA, PRICE_CLOSE, 1) + 2.0 * iStdDev(NULL, PERIOD_M15, Channel_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
var_l_d__84 = iMA(NULL, PERIOD_M15, Channel_Period, 0, MODE_SMA, PRICE_CLOSE, 1) - 2.0 * iStdDev(NULL, PERIOD_M15, Channel_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
ima_92 = iMA(NULL, PERIOD_M1, var_g___period_188, 0, MODE_SMA, PRICE_CLOSE, 1);
ima_100 = iMA(NULL, PERIOD_M1, var_g___period_188, 0, MODE_SMA, PRICE_CLOSE, 2);
HideTestIndicators(FALSE);
var_l_d__108 = var_l_d__76 - var_l_d__84;
count_120 = 0;
count_124 = 0;
for (int pos_128 = OrdersTotal() - 1; pos_128 >= 0; pos_128--) {
if (!OrderSelect(pos_128, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", pos_128);
else {
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
RefreshRates();
if (OrderType() == OP_BUY) {
count_120++;
if (OrderStopLoss() == 0.0) {
price_132 = NormalizeDouble(Ask - Stop_Loss * var_g_d__256, Digits);
price_140 = NormalizeDouble(Ask + Take_Profit * var_g_d__256, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_132, price_140, 0, Green);
continue;
}
if (iVolume(NULL, PERIOD_M1, 0) <= 1.0 && (TimeCurrent() - OrderOpenTime() > 60 * Exit_Minutes && Bid - OrderOpenPrice() > Time_Profit_Pips * var_g_d__256) || (Bid >= var_l_d__76 +
Exit_Distance * var_g_d__256 && Bid - OrderOpenPrice() > Exit_Profit_Pips * var_g_d__256) || (ima_92 < ima_100 && Bid - OrderOpenPrice() > Reverse_Profit * var_g_d__256)) {
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), slippage_64, Violet);
Sleep(5000);
continue;
}
count_120++;
continue;
}
count_124++;
if (OrderStopLoss() == 0.0) {
price_132 = NormalizeDouble(Bid + Stop_Loss * var_g_d__256, Digits);
price_140 = NormalizeDouble(Bid - Take_Profit * var_g_d__256, Digits);
OrderModify(OrderTicket(), OrderOpenPrice(), price_132, price_140, 0, Green);
continue;
}
if (iVolume(NULL, PERIOD_M1, 0) <= 1.0 && (TimeCurrent() - OrderOpenTime() > 60 * Exit_Minutes && OrderOpenPrice() - Ask > Time_Profit_Pips * var_g_d__256) || (Bid <= var_l_d__84 - Exit_Distance * var_g_d__256 &&
OrderOpenPrice() - Ask > Exit_Profit_Pips * var_g_d__256) || (ima_92 > ima_100 && OrderOpenPrice() - Ask > Reverse_Profit * var_g_d__256)) {
OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), slippage_64, Violet);
Sleep(5000);
continue;
}
count_124++;
}
}
}
if (iVolume(NULL, PERIOD_M1, 0) <= 1.0) {
cmd_148 = -1;
if (((var_l_i__68 <= var_l_i__72 && TimeHour(TimeCurrent()) >= var_l_i__68 && TimeHour(TimeCurrent()) <= var_l_i__72) || (var_l_i__68 > var_l_i__72 && TimeHour(TimeCurrent()) >= var_l_i__68 || TimeHour(TimeCurrent()) <= var_l_i__72)) &&
count_120 < 1 && Bid < var_l_d__84 - Entry_Break * var_g_d__256 && var_l_d__108 >= Min_Volatility * var_g_d__256 && SignalMega() == 1 && sigup == 1) {
var_l_s__152 = "BUY";
cmd_148 = 0;
color_160 = Aqua;
RefreshRates();
price_164 = NormalizeDouble(Ask, Digits);
}
if (((var_l_i__68 <= var_l_i__72 && TimeHour(TimeCurrent()) >= var_l_i__68 && TimeHour(TimeCurrent()) <= var_l_i__72) || (var_l_i__68 > var_l_i__72 && TimeHour(TimeCurrent()) >= var_l_i__68 || TimeHour(TimeCurrent()) <= var_l_i__72)) &&
count_124 < 1 && Bid > var_l_d__76 + Entry_Break * var_g_d__256 && var_l_d__108 >= Min_Volatility * var_g_d__256 && SignalMega() == -1 && sigdw == 1) {
var_l_s__152 = "SELL";
cmd_148 = 1;
color_160 = Red;
RefreshRates();
price_164 = NormalizeDouble(Bid, Digits);
}
if (cmd_148 >= OP_BUY) {
ticket_116 = OrderSend(Symbol(), cmd_148, lots_36, price_164, slippage_60, 0, 0, "DPScalper", MagicNumber, 0, color_160);
Sleep(5000);
if (ticket_116 > 0) {
if (OrderSelect(ticket_116, SELECT_BY_TICKET, MODE_TRADES)) Print("Order " + var_l_s__152 + " opened!: ", OrderOpenPrice());
} else Print("Error opening " + var_l_s__152 + " order!: ", GetLastError());
}
}
}
}
}
int f0_4() {
int var_l_i_a_0[4];
int var_l_i_a_4[43];
GetSystemTime(var_l_i_a_0);
int var_l_i__8 = var_l_i_a_0[0] & 65535;
int var_l_i__12 = var_l_i_a_0[0] >> 16;
int var_l_i__16 = var_l_i_a_0[1] >> 16;
int var_l_i__20 = var_l_i_a_0[2] & 65535;
int var_l_i__24 = var_l_i_a_0[2] >> 16;
int var_l_i__28 = var_l_i_a_0[3] & 65535;
string var_l_s__32 = f0_6(var_l_i__8, var_l_i__12, var_l_i__16, var_l_i__24, var_l_i__24, var_l_i__28);
GetLocalTime(var_l_i_a_0);
var_l_i__8 = var_l_i_a_0[0] & 65535;
var_l_i__12 = var_l_i_a_0[0] >> 16;
var_l_i__16 = var_l_i_a_0[1] >> 16;
var_l_i__20 = var_l_i_a_0[2] & 65535;
var_l_i__24 = var_l_i_a_0[2] >> 16;
var_l_i__28 = var_l_i_a_0[3] & 65535;
int var_l_i__40 = var_l_i_a_0[3] >> 16;
string var_l_s__44 = var_l_i__40 + 1000;
var_l_s__44 = StringSubstr(var_l_s__44, 1);
var_l_s__32 = f0_6(var_l_i__8, var_l_i__12, var_l_i__16, var_l_i__20, var_l_i__24, var_l_i__28);
int var_l_i__52 = 0;
int var_l_i__56 = GetTimeZoneInformation(var_l_i_a_4);
if (var_l_i__56 != 0) var_l_i__52 = var_l_i_a_4[0];
if (var_l_i__56 == 2) var_l_i__52 += var_l_i_a_4[42];
int str2time_60 = StrToTime(var_l_s__32);
int var_l_i__64 = TimeCurrent() - (str2time_60 + 60 * var_l_i__52);
double var_l_d__68 = MathRound(var_l_i__64 / 360);
int var_l_i__ret_76 = MathRound(var_l_d__68 / 10.0);
return (var_l_i__ret_76);
}
string f0_6(int var_a_i__0, int var_a_i__4, int var_a_i__8, int var_a_i__12, int var_a_i__16, int var_a_i__20) {
string var_l_s__24 = var_a_i__4 + 100;
var_l_s__24 = StringSubstr(var_l_s__24, 1);
string var_l_s__32 = var_a_i__8 + 100;
var_l_s__32 = StringSubstr(var_l_s__32, 1);
string var_l_s__40 = var_a_i__12 + 100;
var_l_s__40 = StringSubstr(var_l_s__40, 1);
string var_l_s__48 = var_a_i__16 + 100;
var_l_s__48 = StringSubstr(var_l_s__48, 1);
string var_l_s__56 = var_a_i__20 + 100;
var_l_s__56 = StringSubstr(var_l_s__56, 1);
return (StringConcatenate(var_a_i__0, ".", var_l_s__24, ".", var_l_s__32, " ", var_l_s__40, ":", var_l_s__48, ":", var_l_s__56));
}
bool TimeFilter(){
bool _res = false;
datetime _time_curent = TimeCurrent();
datetime _time_start = StrToTime(DoubleToStr(Year(),0)+"."+DoubleToStr(Month(),0)+"."+DoubleToStr(Day(),0)+" "+Start_Trade_Hour);
datetime _time_stop = StrToTime(DoubleToStr(Year(),0)+"."+DoubleToStr(Month(),0)+"."+DoubleToStr(Day(),0)+" "+End_Trade_Hour);
if(((Trade_in_Monday==true) && (TimeDayOfWeek(Time[0]) == 1)) ||
((Trade_in_Tuesday==true) && (TimeDayOfWeek(Time[0]) == 2)) ||
((Trade_in_Wednesday==true) && (TimeDayOfWeek(Time[0]) == 3)) ||
((Trade_in_Thursday==true) && (TimeDayOfWeek(Time[0]) == 4)) ||
((Trade_in_Friday==true) && (TimeDayOfWeek(Time[0]) == 5)))
_res = true;
//if(_time_start > _time_stop){
// if(_time_curent >= _time_start || _time_curent <= _time_stop) _res = true;
//}else
// if(_time_curent >= _time_start && _time_curent <= _time_stop) _res = true;
return(_res);
}
// int Sinalstochastic() {
//
// double istochastic_0 = iStochastic(Symbol(), 0, Stoch_k, Stoch_d, Stoch_slowing, MODE_SMA, Stoch_pricefield, MODE_SIGNAL, Stoch_shift);
// int vret = 0;
// if (istochastic_0 > Stoch_up) vret= -1;
// if (istochastic_0 < Stoch_lo) vret= 1;
//
// return (vret);
//}
int SignalMega()
{
int MegaFX = iCustom(Symbol(),mper[PeriodMegaFX],"mega_fx",6,0);
return(MegaFX);
}