Purebeam.biz Ex4-to-mq4 Free
Decompile Ex4 To Mq4 Free Download
EX4-TO-MQ4 V4 decompiler (FULL VERSION (Enjoy Free BONUS Forex Expert Advisor Trio Dancer(UNLOCKED)). EX4-TO-MQ4 Decompiler 4.0.401.1 is one Compilers & Interpreters software for Development, by PUREBEAM.BIZ. Driver parallel lines android download. Very often our computers crash, sending hours and hours of our life into nowhere.
Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upBranch:master
/* |
Generated by EX4-TO-MQ4 decompiler V4.0.224.1 [] |
Website: http://purebeam.biz |
E-mail : purebeam@gmail.com |
*/ |
#propertycopyright'Copyright © 2010, GPSForexRobot.com' |
#propertylink'http://gpsforexrobot.com/' |
#import'GPSForexRobotEURGBP.dll' |
// int GPSForexRobot(double& a0[], string a1, string a2, int a3, int a4); |
intGetGMT(); |
#import |
externstringGPS_Forex_Robot_EURGBP = ''; |
/* |
extern string ____Authentication________ = '---------------------------------------------'; |
extern string EMail = '; |
extern string CBReceipt = '; |
*/ |
externstring____Size_of_lots________ = '---------------------------------------------'; |
externboolUseMM = FALSE; |
externdoubleLots = 0.01; |
externdoubleLotsRiskReductor = 10.0; |
externdoubleMaxLots = 1000.0; |
externstring____General_Options_____ = '---------------------------------------------'; |
externboolAutoGMTOffset = TRUE; |
externintGMTOffset = 1; |
boolgi_160 = FALSE; |
intgi_164 = 2; |
boolgi_168 = TRUE; |
doublegd_172 = 34.0; |
doublegd_180 = 10.0; |
intgi_188 = 7; |
intgi_192 = 0; |
boolgi_196 = FALSE; |
boolgi_200 = TRUE; |
boolgi_204 = FALSE; |
boolgi_208 = TRUE; |
boolgi_212 = FALSE; |
intgi_216 = -6; |
intgi_220 = 1; |
intgi_224 = 20100109; |
boolgi_228 = TRUE; |
doublegd_232 = 30.0; |
doublegd_240 = 11.0; |
doublegd_248 = 3.0; |
intgi_256 = 20100129; |
externstring____Others______________ = '---------------------------------------------'; |
externstringExpertComment = 'GPS Forex Robot'; |
externcolorColorBuy = Blue; |
externcolorColorSell = Red; |
externboolSendEmail = FALSE; |
externboolSoundAlert = FALSE; |
externstringSoundFileAtOpen = 'alert.wav'; |
externstringSoundFileAtClose = 'alert.wav'; |
externboolWriteLog = FALSE; |
externboolWriteDebugLog = FALSE; |
boolgi_316 = TRUE; |
intgi_320 = 2; |
intgi_324 = 1; |
stringgs_unused_328 = 'New Trade Information'; |
stringgs_336 = 'New Trade Information'; |
intg_bool_344; |
intgi_348; |
intgi_352; |
intg_slippage_356; |
doublegd_360; |
doubleg_maxlot_368; |
doubleg_minlot_376; |
doublegd_384; |
doublegd_392; |
doubleg_lotstep_400; |
doublegd_408; |
stringg_symbol_416; |
stringgs_424; |
boolgba_432[4]; |
doublegda_436[4]; |
doublegda_440[4]; |
intgia_444[4]; |
intgia_448[4]; |
boolgba_452[4][5]; |
intgia_456[4]; |
intgia_460[4]; |
intgia_464[4]; |
boolgba_468[4]; |
doublegda_472[4]; |
doublegda_476[4]; |
doublegda_480[4]; |
intgia_484[4]; |
boolgi_488; |
boolgi_492; |
intgi_496 = 0; |
boolgi_500 = FALSE; |
intgi_504 = 0; |
doublegda_508[52] = {0}; |
stringgs_512 = ''; |
stringgs_520 = ''; |
stringgs_528 = ''; |
boolgi_536 = FALSE; |
intinit() { |
gi_492 = TRUE; |
if (!IsDllsAllowed()) { |
SetCommentPrint('WARNING: Set Parameter 'AllowDLL Imports' ON in menu Tools -> Options -> ExpertAdvisors.', 'comment'); |
gi_492 = FALSE; |
return (0); |
} |
if (StringSubstr(Symbol(), 0, 6) != 'EURGBP') { |
SetCommentPrint('WARNING: Use GPS Forex Robot EURGBP only on EURGBP pair.', 'comment'); |
gi_492 = FALSE; |
return (0); |
} |
if (IsTesting()) { |
if (AutoGMTOffset) { |
SetCommentPrint('WARNING: Automatic GMT offset calculation works only on live/demo trading ' + 'and should be set as FALSE for backtests - strategy testing.', 'comment'); |
gi_492 = FALSE; |
return (0); |
} |
} |
if (WriteDebugLog) { |
WriteLog = TRUE; |
Print('*************************** Initialization ***************************'); |
} |
g_symbol_416 = Symbol(); |
g_maxlot_368 = MarketInfo(g_symbol_416, MODE_MAXLOT); |
g_minlot_376 = MarketInfo(g_symbol_416, MODE_MINLOT); |
g_lotstep_400 = MarketInfo(g_symbol_416, MODE_LOTSTEP); |
if (g_lotstep_4000.01) gi_348 = 2; |
else { |
if (g_lotstep_4000.1) gi_348 = 1; |
else { |
if (g_lotstep_4001.0) gi_348 = 0; |
else { |
if (g_lotstep_4000.001) gi_348 = 3; |
elsegi_348 = 4; |
} |
} |
} |
doublel_leverage_0 = AccountLeverage(); |
gd_408 = NormalizeDouble(LotsRiskReductor * (100 / l_leverage_0), 2); |
gs_424 = AccountCurrency(); |
g_bool_344 = IsTesting(); |
if (Digits < 4) { |
gd_360 = 0.01; |
gi_352 = 2; |
} else { |
gd_360 = 0.0001; |
gi_352 = 4; |
} |
intli_8 = MathPow(10, Digits - gi_352); |
g_slippage_356 = gi_164 * li_8; |
gd_384 = MarketInfo(Symbol(), MODE_SPREAD) / MathPow(10, Digits - gi_352); |
gd_392 = gd_384; |
if (IsTesting()) { |
Authentication(); |
if (gi_496 != 1) { |
PrintInformation(); |
gi_492 = FALSE; |
return (0); |
} |
} |
gi_488 = TRUE; |
return (0); |
} |
intdeinit() { |
Comment(''); |
if (WriteDebugLog) Print('*************************** Deinitialization ***************************'); |
return (0); |
} |
intstart() { |
doubleld_24; |
if (!gi_492) return (0); |
intl_datetime_0 = TimeCurrent(); |
if (!IsTesting()) { |
if (gi_488) { |
if (AutoGMTOffset) { |
if (AutoGMTOffset(GMTOffset)) gs_512 = GMTOffset + ' (automatic)'; |
elsegs_512 = 'Error'; |
} elsegs_512 = GMTOffset + ' (manual)'; |
Authentication(); |
gi_500 = TRUE; |
gi_504 = l_datetime_0; |
gi_488 = FALSE; |
} |
if (gi_500TRUE && gi_504 < l_datetime_0 - 60) { |
gi_500 = FALSE; |
gi_504 = l_datetime_0 + 60 * (780 - Rand(120)); |
} |
if (gi_500FALSE && l_datetime_0 >= gi_504) { |
gi_500 = TRUE; |
Authentication(); |
} |
PrintInformation(); |
} |
if (gi_496 != 1) return (0); |
gd_384 = MarketInfo(Symbol(), MODE_SPREAD) / MathPow(10, Digits - gi_352); |
if (gd_384 > gd_392) gd_392 = gd_384; |
intl_datetime_4 = TimeCurrent(); |
intli_8 = l_datetime_4 - 3600 * GMTOffset; |
intl_day_of_week_12 = TimeDayOfWeek(l_datetime_4); |
intl_datetime_16 = iTime(NULL, PERIOD_D1, 0); |
for (intl_index_20 = 0; l_index_20 < 4; l_index_20++) { |
if (gba_432[l_index_20]) { |
if (!gi_160) SetOrderLevels(gda_440[l_index_20], gda_436[l_index_20], gia_460[l_index_20]); |
WatchOrderLevels(gda_440[l_index_20], gda_436[l_index_20], gia_460[l_index_20]); |
if (gba_468[l_index_20]) { |
if (!gi_160) SetOrderLevels(gda_476[l_index_20], gda_472[l_index_20], gia_484[l_index_20]); |
WatchOrderLevels(gda_476[l_index_20], gda_472[l_index_20], gia_484[l_index_20]); |
if (HaveOrdersInDay(-2, gia_484[l_index_20], l_datetime_16) 0) WatchReverseAfterSL(l_index_20); |
} |
if (l_day_of_week_12 <= 0l_day_of_week_12 > 5) continue; |
if ((gba_452[l_index_20][l_day_of_week_12 - 1])) { |
if (gia_444[l_index_20] != TimeHour(l_datetime_4) gia_448[l_index_20] != TimeMinute(l_datetime_4)) continue; |
if (HaveOrdersInDay(-2, gia_460[l_index_20], l_datetime_16) <= 0) { |
ld_24 = LotsOptimized(gia_464[l_index_20]); |
if (gia_456[l_index_20] >= 0) |
if (l_day_of_week_12gia_456[l_index_20]) ld_24 = NormalizeDouble(2.0 * ld_24, gi_348); |
OpenOrder(gia_464[l_index_20], gia_460[l_index_20], ExpertComment, ld_24); |
} |
} |
} |
} |
return (0); |
} |
stringErrorDescription(intai_0) { |
stringls_ret_8; |
switch (ai_0) { |
case0: |
case1: |
ls_ret_8 = 'no error'; |
break; |
case2: |
ls_ret_8 = 'common error'; |
break; |
case3: |
ls_ret_8 = 'invalid trade parameters'; |
break; |
case4: |
ls_ret_8 = 'trade server is busy'; |
break; |
case5: |
ls_ret_8 = 'old version of the client terminal'; |
break; |
case6: |
ls_ret_8 = 'no connection with trade server'; |
break; |
case7: |
ls_ret_8 = 'not enough rights'; |
break; |
case8: |
ls_ret_8 = 'too frequent requests'; |
break; |
case9: |
ls_ret_8 = 'malfunctional trade operation (never returned error)'; |
break; |
case64: |
ls_ret_8 = 'account disabled'; |
break; |
case65: |
ls_ret_8 = 'invalid account'; |
break; |
case128: |
ls_ret_8 = 'trade timeout'; |
break; |
case129: |
ls_ret_8 = 'invalid price'; |
break; |
case130: |
ls_ret_8 = 'invalid stops'; |
break; |
case131: |
ls_ret_8 = 'invalid trade volume'; |
break; |
case132: |
ls_ret_8 = 'market is closed'; |
break; |
case133: |
ls_ret_8 = 'trade is disabled'; |
break; |
case134: |
ls_ret_8 = 'not enough money'; |
break; |
case135: |
ls_ret_8 = 'price changed'; |
break; |
case136: |
ls_ret_8 = 'off quotes'; |
break; |
case137: |
ls_ret_8 = 'broker is busy (never returned error)'; |
break; |
case138: |
ls_ret_8 = 'requote'; |
break; |
case139: |
ls_ret_8 = 'order is locked'; |
break; |
case140: |
ls_ret_8 = 'long positions only allowed'; |
break; |
case141: |
ls_ret_8 = 'too many requests'; |
break; |
case145: |
ls_ret_8 = 'modification denied because order too close to market'; |
break; |
case146: |
ls_ret_8 = 'trade context is busy'; |
break; |
case147: |
ls_ret_8 = 'expirations are denied by broker'; |
break; |
case148: |
ls_ret_8 = 'amount of open and pending orders has reached the limit'; |
break; |
case149: |
ls_ret_8 = 'hedging is prohibited'; |
break; |
case150: |
ls_ret_8 = 'prohibited by FIFO rules'; |
break; |
case4000: |
ls_ret_8 = 'no error (never generated code)'; |
break; |
case4001: |
ls_ret_8 = 'wrong function pointer'; |
break; |
case4002: |
ls_ret_8 = 'array index is out of range'; |
break; |
case4003: |
ls_ret_8 = 'no memory for function call stack'; |
break; |
case4004: |
ls_ret_8 = 'recursive stack overflow'; |
break; |
case4005: |
ls_ret_8 = 'not enough stack for parameter'; |
break; |
case4006: |
ls_ret_8 = 'no memory for parameter string'; |
break; |
case4007: |
ls_ret_8 = 'no memory for temp string'; |
break; |
case4008: |
ls_ret_8 = 'not initialized string'; |
break; |
case4009: |
ls_ret_8 = 'not initialized string in array'; |
break; |
case4010: |
ls_ret_8 = 'no memory for array' string'; |
break; |
case4011: |
ls_ret_8 = 'too long string'; |
break; |
case4012: |
ls_ret_8 = 'remainder from zero divide'; |
break; |
case4013: |
ls_ret_8 = 'zero divide'; |
break; |
case4014: |
ls_ret_8 = 'unknown command'; |
break; |
case4015: |
ls_ret_8 = 'wrong jump (never generated error)'; |
break; |
case4016: |
ls_ret_8 = 'not initialized array'; |
break; |
case4017: |
ls_ret_8 = 'dll calls are not allowed'; |
break; |
case4018: |
ls_ret_8 = 'cannot load library'; |
break; |
case4019: |
ls_ret_8 = 'cannot call function'; |
break; |
case4020: |
ls_ret_8 = 'expert function calls are not allowed'; |
break; |
case4021: |
ls_ret_8 = 'not enough memory for temp string returned from function'; |
break; |
case4022: |
ls_ret_8 = 'system is busy (never generated error)'; |
break; |
case4050: |
ls_ret_8 = 'invalid function parameters count'; |
break; |
case4051: |
ls_ret_8 = 'invalid function parameter value'; |
break; |
case4052: |
ls_ret_8 = 'string function internal error'; |
break; |
case4053: |
ls_ret_8 = 'some array error'; |
break; |
case4054: |
ls_ret_8 = 'incorrect series array using'; |
break; |
case4055: |
ls_ret_8 = 'custom indicator error'; |
break; |
case4056: |
ls_ret_8 = 'arrays are incompatible'; |
break; |
case4057: |
ls_ret_8 = 'global variables processing error'; |
break; |
case4058: |
ls_ret_8 = 'global variable not found'; |
break; |
case4059: |
ls_ret_8 = 'function is not allowed in testing mode'; |
break; |
case4060: |
ls_ret_8 = 'function is not confirmed'; |
break; |
case4061: |
ls_ret_8 = 'send mail error'; |
break; |
case4062: |
ls_ret_8 = 'string parameter expected'; |
break; |
case4063: |
ls_ret_8 = 'integer parameter expected'; |
break; |
case4064: |
ls_ret_8 = 'double parameter expected'; |
break; |
case4065: |
ls_ret_8 = 'array as parameter expected'; |
break; |
case4066: |
ls_ret_8 = 'requested history data in update state'; |
break; |
case4099: |
ls_ret_8 = 'end of file'; |
break; |
case4100: |
ls_ret_8 = 'some file error'; |
break; |
case4101: |
ls_ret_8 = 'wrong file name'; |
break; |
case4102: |
ls_ret_8 = 'too many opened files'; |
break; |
case4103: |
ls_ret_8 = 'cannot open file'; |
break; |
case4104: |
ls_ret_8 = 'incompatible access to a file'; |
break; |
case4105: |
ls_ret_8 = 'no order selected'; |
break; |
case4106: |
ls_ret_8 = 'unknown symbol'; |
break; |
case4107: |
ls_ret_8 = 'invalid price parameter for trade function'; |
break; |
case4108: |
ls_ret_8 = 'invalid ticket'; |
break; |
case4109: |
ls_ret_8 = 'trade is not allowed in the expert properties'; |
break; |
case4110: |
ls_ret_8 = 'longs are not allowed in the expert properties'; |
break; |
case4111: |
ls_ret_8 = 'shorts are not allowed in the expert properties'; |
break; |
case4200: |
ls_ret_8 = 'object is already exist'; |
break; |
case4201: |
ls_ret_8 = 'unknown object property'; |
break; |
case4202: |
ls_ret_8 = 'object is not exist'; |
break; |
case4203: |
ls_ret_8 = 'unknown object type'; |
break; |
case4204: |
ls_ret_8 = 'no object name'; |
break; |
case4205: |
ls_ret_8 = 'object coordinates error'; |
break; |
case4206: |
ls_ret_8 = 'no specified subwindow'; |
break; |
default: |
ls_ret_8 = 'unknown error'; |
} |
return (ls_ret_8); |
} |
stringOrderTypeToStr(intai_0) { |
stringls_ret_8; |
switch (ai_0) { |
case0: |
ls_ret_8 = 'Buy'; |
break; |
case1: |
ls_ret_8 = 'Sell'; |
break; |
case2: |
ls_ret_8 = 'BuyLimit'; |
break; |
case3: |
ls_ret_8 = 'SellLimit'; |
break; |
case4: |
ls_ret_8 = 'BuyStop'; |
break; |
case5: |
ls_ret_8 = 'SellStop'; |
break; |
default: |
ls_ret_8 = 'Unknown'; |
} |
return (ls_ret_8); |
} |
intGetGMTCorrection(intai_0) { |
ai_0 += GMTOffset; |
while (true) { |
if (ai_0 >= 24) { |
ai_0 -= 24; |
continue; |
} |
if (ai_0 >= 0) break; |
ai_0 += 24; |
} |
return (ai_0); |
} |
voidSetOrderLevels(doublead_0, doublead_8, inta_magic_16) { |
intl_cmd_36; |
doubleld_40; |
doublel_price_48; |
doubleld_56; |
doubleld_64; |
boolli_72; |
doublel_price_76; |
boolli_84; |
doublel_price_88; |
booll_bool_96; |
doubleld_20 = NormalizeDouble(MarketInfo(g_symbol_416, MODE_STOPLEVEL) * Point, Digits); |
intli_28 = OrdersTotal() - 1; |
for (intl_pos_32 = li_28; l_pos_32 >= 0; l_pos_32--) { |
if (!OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES)) { |
if (WriteLog) Print(StringConcatenate('SetOrderLevels: OrderSelect() error = ', ErrorDescription(GetLastError()))); |
} else { |
if (OrderMagicNumber() a_magic_16) { |
if (OrderSymbol() g_symbol_416) { |
l_cmd_36 = OrderType(); |
ld_40 = NormalizeDouble(OrderClosePrice(), Digits); |
l_price_48 = NormalizeDouble(OrderOpenPrice(), Digits); |
if (l_cmd_36 > OP_SELL) |
if (NormalizeDouble(MathAbs(l_price_48 - ld_40), Digits) <= ld_20) continue; |
ld_56 = NormalizeDouble(OrderStopLoss(), Digits); |
ld_64 = NormalizeDouble(OrderTakeProfit(), Digits); |
li_72 = FALSE; |
if (ld_560.0) { |
if (ad_8 < 0.0) { |
if (l_cmd_36 % 20) { |
l_price_76 = NormalizeDouble(l_price_48 + ad_8, Digits); |
if (NormalizeDouble(ld_40 - l_price_76, Digits) > ld_20) li_72 = TRUE; |
elsel_price_76 = ld_56; |
} else { |
l_price_76 = NormalizeDouble(l_price_48 - ad_8, Digits); |
if (NormalizeDouble(l_price_76 - ld_40, Digits) > ld_20) li_72 = TRUE; |
elsel_price_76 = ld_56; |
} |
} elsel_price_76 = ld_56; |
} elsel_price_76 = ld_56; |
li_84 = FALSE; |
if (ld_640.0) { |
if (ad_0 > 0.0) { |
if (l_cmd_36 % 20) { |
l_price_88 = NormalizeDouble(l_price_48 + ad_0, Digits); |
if (NormalizeDouble(l_price_88 - ld_40, Digits) > ld_20) li_84 = TRUE; |
elsel_price_88 = ld_64; |
} else { |
l_price_88 = NormalizeDouble(l_price_48 - ad_0, Digits); |
if (NormalizeDouble(ld_40 - l_price_88, Digits) > ld_20) li_84 = TRUE; |
elsel_price_88 = ld_64; |
} |
} elsel_price_88 = ld_64; |
} elsel_price_88 = ld_64; |
if (li_72li_84) { |
while (!IsTradeAllowed()) Sleep(1000); |
l_bool_96 = OrderModify(OrderTicket(), l_price_48, l_price_76, l_price_88, 0, CLR_NONE); |
if (!l_bool_96) |
if (WriteLog) Print(StringConcatenate('SetOrderLevels: OrderModify(', OrderTypeToStr(OrderType()), ') error = ', ErrorDescription(GetLastError()))); |
} |
} |
} |
} |
} |
} |
voidWatchOrderLevels(doublead_0, doublead_8, inta_magic_16) { |
doubleld_28; |
doubleld_36; |
doubleld_44; |
if (ad_0 <= 0.0 && ad_8 >= 0.0) return; |
intli_20 = OrdersTotal() - 1; |
for (intl_pos_24 = li_20; l_pos_24 >= 0; l_pos_24--) { |
if (!OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES)) { |
if (WriteLog) Print(StringConcatenate('WatchOrderLevels: OrderSelect() error = ', ErrorDescription(GetLastError()))); |
} else { |
if (OrderMagicNumber() a_magic_16) { |
if (OrderType() <= OP_SELL) { |
if (OrderSymbol() g_symbol_416) { |
ld_28 = NormalizeDouble(OrderClosePrice(), Digits); |
ld_36 = NormalizeDouble(OrderOpenPrice(), Digits); |
if (OrderType() OP_BUY) { |
ld_44 = NormalizeDouble(ld_28 - ld_36, Digits); |
if ((ad_0 > 0.0 && ld_44 >= ad_0) (ad_8 < 0.0 && ld_44 <= ad_8)) { |
if (WriteLog) Print('WatchOrderLevels: level for close BUY'); |
CloseOrder(OrderTicket(), OrderLots(), 0, g_slippage_356); |
} |
} else { |
ld_44 = NormalizeDouble(ld_36 - ld_28, Digits); |
if ((ad_0 > 0.0 && ld_44 >= ad_0) (ad_8 < 0.0 && ld_44 <= ad_8)) { |
if (WriteLog) Print('WatchOrderLevels: level for close SELL'); |
CloseOrder(OrderTicket(), OrderLots(), 1, g_slippage_356); |
} |
} |
} |
} |
} |
} |
} |
} |
doubleLotsOptimized(intai_unused_0) { |
doubleld_ret_4; |
doubleld_12; |
doubleld_20; |
if (!UseMM) ld_ret_4 = Lots; |
else { |
ld_12 = AccountFreeMargin() * gd_408 / 100.0; |
ld_20 = MarketInfo(g_symbol_416, MODE_MARGINREQUIRED) * g_lotstep_400; |
ld_ret_4 = NormalizeDouble(MathFloor(ld_12 / ld_20) * g_lotstep_400, gi_348); |
} |
if (ld_ret_4 > MaxLots) ld_ret_4 = MaxLots; |
if (ld_ret_4 < g_minlot_376) ld_ret_4 = g_minlot_376; |
if (ld_ret_4 > g_maxlot_368) ld_ret_4 = g_maxlot_368; |
return (ld_ret_4); |
} |
intOpenOrder(inta_cmd_0, inta_magic_4, stringa_comment_8, doublead_16, doublea_price_24 = 0.0) { |
colorl_color_36; |
intl_ticket_72; |
intl_error_76; |
doubleld_80; |
if (a_cmd_0 > OP_SELL && a_price_240.0) return (-1); |
intl_cmd_32 = a_cmd_0 % 2; |
if (ad_16 < g_minlot_376) ad_16 = g_minlot_376; |
else |
if (ad_16 > g_maxlot_368) ad_16 = g_maxlot_368; |
if (AccountFreeMarginCheck(g_symbol_416, l_cmd_32, ad_16) <= 0.0GetLastError() 134/* NOT_ENOUGH_MONEY */) { |
if (WriteLog) Print('OpenOrder: you don't have free margin.'); |
return (-1); |
} |
if (l_cmd_32OP_BUY) l_color_36 = ColorBuy; |
elsel_color_36 = ColorSell; |
RefreshRates(); |
doubleld_40 = NormalizeDouble(MarketInfo(g_symbol_416, MODE_STOPLEVEL) * Point, Digits); |
doubleld_48 = NormalizeDouble(Ask, Digits); |
doubleld_56 = NormalizeDouble(Bid, Digits); |
switch (a_cmd_0) { |
caseOP_BUY: |
a_price_24 = ld_48; |
break; |
caseOP_SELL: |
a_price_24 = ld_56; |
break; |
caseOP_BUYLIMIT: |
if (a_price_24 >= ld_48) { |
a_price_24 = ld_48; |
a_cmd_0 = 0; |
} else |
if (NormalizeDouble(ld_48 - a_price_24, Digits) < ld_40) return (-1); |
break; |
caseOP_SELLLIMIT: |
if (a_price_24 <= ld_56) { |
a_price_24 = ld_56; |
a_cmd_0 = 1; |
} else |
if (NormalizeDouble(a_price_24 - ld_56, Digits) < ld_40) return (-1); |
break; |
caseOP_BUYSTOP: |
if (a_price_24 <= ld_48) { |
a_price_24 = ld_48; |
a_cmd_0 = 0; |
} else |
if (NormalizeDouble(a_price_24 - ld_48, Digits) < ld_40) return (-1); |
break; |
caseOP_SELLSTOP: |
if (a_price_24 >= ld_56) { |
a_price_24 = ld_56; |
a_cmd_0 = 1; |
} else |
if (NormalizeDouble(ld_56 - a_price_24, Digits) < ld_40) return (-1); |
break; |
default: |
return (-1); |
} |
intli_68 = gi_320; |
while (li_68 > 0) { |
while (!IsTradeAllowed()) Sleep(1000); |
l_ticket_72 = OrderSend(g_symbol_416, a_cmd_0, ad_16, a_price_24, g_slippage_356, 0, 0, a_comment_8, a_magic_4, 0, l_color_36); |
Sleep(MathRand() / 1000); |
if (l_ticket_72 < 0) { |
l_error_76 = GetLastError(); |
if (WriteLog) { |
Print('OpenOrder: OrderSend(', OrderTypeToStr(a_cmd_0), ') error = ', ErrorDescription(l_error_76)); |
Print('OpenOrder: order ', g_symbol_416, '', OrderTypeToStr(a_cmd_0), ' lot = ', DoubleToStr(ad_16, 8), ' op = ', DoubleToStr(a_price_24, 8), ' slippage = ', g_slippage_356); |
} |
if (l_error_76 != 136/* OFF_QUOTES */) break; |
if (!(gi_316)) break; |
Sleep(6000); |
RefreshRates(); |
if (a_cmd_0OP_BUY) ld_80 = NormalizeDouble(Ask, Digits); |
elseld_80 = NormalizeDouble(Bid, Digits); |
if (NormalizeDouble(MathAbs((ld_80 - a_price_24) / gd_360), 0) > gi_324) break; |
a_price_24 = ld_80; |
li_68--; |
if (li_68 > 0) |
if (WriteLog) Print('.. Possible to open order.'); |
ad_16 = NormalizeDouble(ad_16 / 2.0, gi_348); |
if (ad_16 < g_minlot_376) ad_16 = g_minlot_376; |
} else { |
if (OrderSelect(l_ticket_72, SELECT_BY_TICKET)) a_price_24 = OrderOpenPrice(); |
if (SendEmail) { |
SendMail(gs_336, StringConcatenate('GPS Forex Robot trade InformationnCurrency Pair: ', StringSubstr(g_symbol_416, 0, 6), |
'nTime: ', TimeToStr(TimeCurrent(), TIME_DATETIME_MINUTESTIME_SECONDS), |
'nOrder Type: ', OrderTypeToStr(a_cmd_0), |
'nPrice: ', DoubleToStr(a_price_24, Digits), |
'nLot size: ', DoubleToStr(ad_16, gi_348), |
'nEvent: Trade Opened', |
'nnCurrent Balance: ', DoubleToStr(AccountBalance(), 2), '', gs_424, |
'nCurrent Equity: ', DoubleToStr(AccountEquity(), 2), '', gs_424)); |
} |
if (!(SoundAlert)) break; |
PlaySound(SoundFileAtOpen); |
break; |
} |
} |
return (l_ticket_72); |
} |
intCloseOrder(inta_ticket_0, doublea_lots_4, intai_12, inta_slippage_16) { |
colorl_color_20; |
doublel_price_40; |
booll_ord_close_48; |
intl_error_52; |
boolli_56; |
if (ai_120) l_color_20 = ColorBuy; |
elsel_color_20 = ColorSell; |
intl_count_24 = 0; |
intl_count_28 = 0; |
intl_count_32 = 0; |
intl_count_36 = 0; |
while (true) { |
while (!IsTradeAllowed()) Sleep(1000); |
RefreshRates(); |
if (ai_120) l_price_40 = NormalizeDouble(Bid, Digits); |
elsel_price_40 = NormalizeDouble(Ask, Digits); |
l_ord_close_48 = OrderClose(a_ticket_0, a_lots_4, l_price_40, a_slippage_16, l_color_20); |
if (!l_ord_close_48) { |
l_error_52 = GetLastError(); |
if (WriteLog) Print(StringConcatenate('OrderClose(', OrderTypeToStr(ai_12), ',', DoubleToStr(a_ticket_0, 0), ') error = ', ErrorDescription(l_error_52))); |
li_56 = FALSE; |
switch (l_error_52) { |
case0/* NO_ERROR */: |
Sleep(10000); |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) |
if (OrderCloseTime() 0) li_56 = TRUE; |
break; |
case1/* NO_RESULT */: break; |
case2/* COMMON_ERROR */: break; |
case3/* INVALID_TRADE_PARAMETERS */: break; |
case4/* SERVER_BUSY */: break; |
case5/* OLD_VERSION */: break; |
case6/* NO_CONNECTION */: |
Sleep(10000); |
if (IsConnected()) li_56 = TRUE; |
break; |
case7/* NOT_ENOUGH_RIGHTS */: break; |
case8/* TOO_FREQUENT_REQUESTS */: break; |
case9/* MALFUNCTIONAL_TRADE */: break; |
case64/* ACCOUNT_DISABLED */: break; |
case65/* INVALID_ACCOUNT */: break; |
case128/* TRADE_TIMEOUT */: |
Sleep(70000); |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) |
if (OrderCloseTime() 0) li_56 = TRUE; |
break; |
case129/* INVALID_PRICE */: |
Sleep(6000); |
l_count_24++; |
if (l_count_24 <= 3) li_56 = TRUE; |
break; |
case130/* INVALID_STOPS */: |
Sleep(6000); |
l_count_28++; |
if (l_count_28 <= 3) li_56 = TRUE; |
break; |
case131/* INVALID_TRADE_VOLUME */: break; |
case132/* MARKET_CLOSED */: break; |
case133/* TRADE_DISABLED */: break; |
case134/* NOT_ENOUGH_MONEY */: break; |
case135/* PRICE_CHANGED */: |
li_56 = TRUE; |
break; |
case136/* OFF_QUOTES */: |
Sleep(6000); |
li_56 = TRUE; |
break; |
case137/* BROKER_BUSY */: |
Sleep(20000); |
l_count_32++; |
if (l_count_32 <= 3) li_56 = TRUE; |
break; |
case138/* REQUOTE */: |
l_count_36++; |
if (l_count_36 <= 3) li_56 = TRUE; |
break; |
case139/* ORDER_LOCKED */: break; |
case140/* LONG_POSITIONS_ONLY_ALLOWED */: break; |
case141/* TOO_MANY_REQUESTS */: break; |
case142: |
Sleep(70000); |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) |
if (OrderCloseTime() 0) li_56 = TRUE; |
break; |
case143: |
Sleep(70000); |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) |
if (OrderCloseTime() 0) li_56 = TRUE; |
break; |
case144: break; |
case145/* TRADE_MODIFY_DENIED */: |
Sleep(20000); |
li_56 = TRUE; |
break; |
case146/* TRADE_CONTEXT_BUSY */: |
while (IsTradeContextBusy()) Sleep(1000); |
li_56 = TRUE; |
break; |
case147/* ERR_TRADE_EXPIRATION_DENIED */: break; |
case148/* ERR_TRADE_TOO_MANY_ORDERS */: break; |
case149/* ? */: break; |
case150: break; |
case4000/* NO_MQLERROR */: |
Sleep(10000); |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) |
if (OrderCloseTime() 0) li_56 = TRUE; |
case4051/* INVALID_FUNCTION_PARAMETER_VALUE */: break; |
case4062/* STRING_PARAMETER_EXPECTED */: break; |
case4063/* INTEGER_PARAMETER_EXPECTED */: break; |
case4064/* DOUBLE_PARAMETER_EXPECTED */: break; |
case4105/* NO_ORDER_SELECTED */: break; |
case4106/* UNKNOWN_SYMBOL */: break; |
case4107/* INVALID_PRICE_PARAM */: break; |
case4108/* INVALID_TICKET */: break; |
case4109/* TRADE_NOT_ALLOWED */: break; |
case4110/* LONGS__NOT_ALLOWED */: break; |
case4111/* SHORTS_NOT_ALLOWED */: break; |
} |
if (!(li_56)) break; |
continue; |
} |
if (OrderSelect(a_ticket_0, SELECT_BY_TICKET)) l_price_40 = OrderClosePrice(); |
if (SendEmail) { |
SendMail(gs_336, StringConcatenate('GPS Forex Robot trade InformationnCurrency Pair: ', StringSubstr(g_symbol_416, 0, 6), |
'nTime: ', TimeToStr(TimeCurrent(), TIME_DATETIME_MINUTESTIME_SECONDS), |
'nOrder Type: ', OrderTypeToStr(ai_12), |
'nPrice: ', DoubleToStr(l_price_40, Digits), |
'nLot size: ', DoubleToStr(a_lots_4, gi_348), |
'nEvent: Trade Closed', |
'nnCurrent Balance: ', DoubleToStr(AccountBalance(), 2), '', gs_424, |
'nCurrent Equity: ', DoubleToStr(AccountEquity(), 2), '', gs_424)); |
} |
if (!(SoundAlert)) break; |
PlaySound(SoundFileAtClose); |
break; |
} |
return (l_ord_close_48); |
} |
intHaveOrdersInDay(inta_cmd_0, inta_magic_4, intai_8) { |
intl_cmd_24; |
intl_count_12 = 0; |
intli_16 = OrdersTotal() - 1; |
for (intl_pos_20 = li_16; l_pos_20 >= 0; l_pos_20--) { |
if (!OrderSelect(l_pos_20, SELECT_BY_POS, MODE_TRADES)) { |
if (WriteLog) Print(StringConcatenate('HaveOrdersInDay: OrderSelect() error = ', ErrorDescription(GetLastError()))); |
} else { |
if (OrderMagicNumber() a_magic_4) { |
if (OrderSymbol() g_symbol_416) { |
l_cmd_24 = OrderType(); |
if (a_cmd_0 -4) { |
if (l_cmd_24 % 2 != 0) continue; |
} else { |
if (a_cmd_0 -5) { |
if (l_cmd_24 % 2 != 1) continue; |
} else { |
if (a_cmd_0 -3) { |
if (l_cmd_24 <= OP_SELL) continue; |
} else { |
if (a_cmd_0 -2) { |
if (l_cmd_24 > OP_SELL) continue; |
} else { |
if (a_cmd_0 >= OP_BUY) |
if (l_cmd_24 != a_cmd_0) continue; |
} |
} |
} |
} |
if (OrderOpenTime() >= ai_8) l_count_12++; |
} |
} |
} |
} |
if (l_count_120) { |
li_16 = OrdersHistoryTotal() - 1; |
for (l_pos_20 = li_16; l_pos_20 >= 0; l_pos_20--) { |
if (!OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) { |
if (WriteLog) Print(StringConcatenate('HaveOrdersInDay: OrderSelect_2() error = ', ErrorDescription(GetLastError()))); |
} else { |
if (OrderMagicNumber() a_magic_4) { |
if (OrderSymbol() g_symbol_416) { |
l_cmd_24 = OrderType(); |
if (a_cmd_0 -4) { |
if (l_cmd_24 % 2 != 0) continue; |
} else { |
if (a_cmd_0 -5) { |
if (l_cmd_24 % 2 != 1) continue; |
} else { |
if (a_cmd_0 -3) { |
if (l_cmd_24 <= OP_SELL) continue; |
} else { |
if (a_cmd_0 -2) { |
if (l_cmd_24 > OP_SELL) continue; |
} else { |
if (a_cmd_0 >= OP_BUY) |
if (l_cmd_24 != a_cmd_0) continue; |
} |
} |
} |
} |
if (OrderOpenTime() < ai_8) break; |
l_count_12++; |
} |
} |
} |
} |
} |
return (l_count_12); |
} |
voidWatchReverseAfterSL(intai_0) { |
intl_magic_12; |
intl_datetime_16; |
doubleld_20; |
intli_4 = OrdersHistoryTotal() - 1; |
for (intl_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) { |
if (!OrderSelect(l_pos_8, SELECT_BY_POS, MODE_HISTORY)) { |
if (WriteLog) Print(StringConcatenate('WatchReverseAfterSL: OrderSelect() error = ', ErrorDescription(GetLastError()))); |
} else { |
l_magic_12 = OrderMagicNumber(); |
if (l_magic_12gia_484[ai_0]) break; |
if (l_magic_12gia_460[ai_0]) { |
if (OrderSymbol() g_symbol_416) { |
if (OrderProfit() >= 0.0) break; |
l_datetime_16 = OrderCloseTime(); |
if (TimeHour(l_datetime_16) != Hour()) break; |
if (TimeMinute(l_datetime_16) != Minute()) break; |
if (TimeDay(l_datetime_16) != Day()) break; |
if (TimeMonth(l_datetime_16) != Month()) break; |
ld_20 = NormalizeDouble(OrderLots() * gda_480[ai_0], gi_348); |
if (ld_20 > MaxLots) ld_20 = MaxLots; |
if (ld_20 < g_minlot_376) ld_20 = g_minlot_376; |
if (ld_20 > g_maxlot_368) ld_20 = g_maxlot_368; |
OpenOrder(MathAbs(gia_464[ai_0] - 1), gia_484[ai_0], ExpertComment, ld_20); |
return; |
} |
} |
} |
} |
} |
boolAutoGMTOffset(int &ai_0) { |
intli_4 = GetGMT(); |
if (li_4 < 0) return (FALSE); |
intli_8 = TimeCurrent() - li_4; |
ai_0 = MathFloor((li_8 + 1800) / 3600); |
return (TRUE); |
} |
intSetCommentPrint(stringas_0, stringas_8 = '') { |
Comment('nn' + 'GPS FOREX ROBOT' |
+ 'n' |
+ 'www.gpsforexrobot.com' |
+ 'nn' + as_0); |
if (as_8 != '') { |
if (as_8'comment') Print(as_0); |
elsePrint(as_8); |
} |
return (1); |
} |
intPrintInformation() { |
stringls_0; |
if (gi_4961) { |
if (IsDemo()) ls_0 = 'Demo'; |
elsels_0 = 'Real'; |
SetCommentPrint('AUTHENTICATION STATUS: ' |
+ 'n' |
+ gs_520 |
+ 'n' |
+ '---------------------------------------------------' |
+ 'n' |
+ 'GENERAL INFORMATION:' |
+ 'n' |
+ 'Broker Company: ' + AccountCompany() |
+ 'n' |
+ 'Terminal Company: ' + TerminalCompany() |
+ 'n' |
+ 'Server Name: ' + AccountServer() |
+ 'n' |
+ 'Current Server Time: ' + TimeToStr(TimeCurrent(), TIME_SECONDS) |
+ 'n' |
+ '---------------------------------------------------' |
+ 'n' |
+ 'ACCOUNT INFORMATION:' |
+ 'n' |
+ 'Account Name: ' + AccountName() |
+ 'n' |
+ 'Account Number: ' + AccountNumber() |
+ 'n' |
+ 'Account Type: ' + ls_0 |
+ 'n' |
+ 'Account Leverage: 1:' + DoubleToStr(AccountLeverage(), 0) |
+ 'n' |
+ 'Account Balance: ' + DoubleToStr(AccountBalance(), 2) |
+ 'n' |
+ 'Account Equity: ' + DoubleToStr(AccountEquity(), 2) |
+ 'n' |
+ 'Account Floating P/L: ' + DoubleToStr(AccountProfit(), 2) |
+ 'n' |
+ 'Account Currency: ' + AccountCurrency() |
+ 'n' |
+ '---------------------------------------------------' |
+ 'n' |
+ 'ADDITIONAL INFORMATION:' |
+ 'n' |
+ 'Current Spread: ' + DoubleToStr(gd_384, Digits - gi_352) |
+ 'n' |
+ 'Maximum Spread: ' + DoubleToStr(gd_392, Digits - gi_352) |
+ 'n' |
+ 'Free Margin: ' + DoubleToStr(AccountFreeMargin(), 2) |
+ 'n' |
+ 'Used Margin: ' + DoubleToStr(AccountMargin(), 2) |
+ 'n' |
+ '---------------------------------------------------' |
+ 'n' |
+ 'GMT SETTINGS:' |
+ 'n' |
+ 'GMT Offset: ' + gs_512); |
} else { |
if (!gi_536) { |
SetCommentPrint('AUTHENTICATION STATUS: ' |
+ 'n' |
+ gs_520, gs_528); |
gi_536 = TRUE; |
} |
} |
return (0); |
} |
intSetVariables() { |
gda_508[16] = 1.00000000; |
gda_508[17] = 2.00000000; |
gda_508[18] = 86.50000000; |
gda_508[19] = 3.00000000; |
gda_508[20] = 23.00000000; |
gda_508[21] = 0.00000000; |
gda_508[22] = 0.00000000; |
gda_508[23] = 0.00000000; |
gda_508[24] = 1.00000000; |
gda_508[25] = 1.00000000; |
gda_508[26] = 1.00000000; |
gda_508[27] = 1.00000000; |
gda_508[28] = 0.00000000; |
gda_508[29] = -2.00000000; |
gda_508[30] = 1.00000000; |
gda_508[31] = 220.00000000; |
gda_508[32] = 14.60000000; |
gda_508[33] = 6.00000000; |
if (gda_508[16] 1.0) gi_160 = TRUE; |
elsegi_160 = FALSE; |
gi_164 = gda_508[17]; |
gd_172 = gda_508[18]; |
gd_180 = gda_508[19]; |
gi_188 = gda_508[20]; |
gi_192 = gda_508[21]; |
if (gda_508[22] 1.0) gi_196 = TRUE; |
elsegi_196 = FALSE; |
if (gda_508[23] 1.0) gi_200 = TRUE; |
elsegi_200 = FALSE; |
if (GMTOffset <= 0) { |
if (gda_508[24] 1.0) gi_200 = TRUE; |
elsegi_200 = FALSE; |
} |
if (gda_508[25] 1.0) gi_204 = TRUE; |
elsegi_204 = FALSE; |
if (gda_508[26] 1.0) gi_208 = TRUE; |
elsegi_208 = FALSE; |
if (gda_508[27] 1.0) gi_212 = TRUE; |
elsegi_212 = FALSE; |
if (GMTOffset <= 0) { |
if (gda_508[28] 1.0) gi_212 = TRUE; |
elsegi_212 = FALSE; |
} |
gi_216 = gda_508[29]; |
if (gda_508[30] 1.0) gi_220 = TRUE; |
elsegi_220 = FALSE; |
gd_232 = gda_508[31]; |
gd_240 = gda_508[32]; |
gd_248 = gda_508[33]; |
gba_432[0] = gi_168; |
gda_436[0] = NormalizeDouble((-1.0 * gd_172) * gd_360, Digits); |
gda_440[0] = NormalizeDouble(gd_180 * gd_360, Digits); |
gia_444[0] = GetGMTCorrection(gi_188); |
gia_448[0] = gi_192; |
gba_452[0][0] = gi_196; |
gba_452[0][1] = gi_200; |
gba_452[0][2] = gi_204; |
gba_452[0][3] = gi_208; |
gba_452[0][4] = gi_212; |
gia_456[0] = gi_216; |
gia_464[0] = gi_220; |
gia_460[0] = gi_224; |
gba_468[0] = gi_228; |
gda_472[0] = NormalizeDouble((-1.0 * gd_232) * gd_360, Digits); |
gda_476[0] = NormalizeDouble(gd_240 * gd_360, Digits); |
gda_480[0] = gd_248; |
gia_484[0] = gi_256; |
return (1); |
} |
intAuthentication() { |
/* |
gi_496 = GPSForexRobot(gda_508, EMail, CBReceipt, IsDemo(), AccountNumber()); |
if (gi_496 -1) { |
gs_520 = 'Authentication Failed [Invalid Internet Connection]n[Trades are not available]'; |
gs_528 = 'Authentication Failed: [Invalid Internet Connection] [Trades are not available]'; |
return (-1); |
} |
if (gi_496 -2) { |
gs_520 = 'Authentication Failed [Invalid Internet Connection]n[Trades are not available]'; |
gs_528 = 'Authentication Failed: [Invalid Internet Connection] [Trades are not available]'; |
return (-2); |
} |
if (gi_496 -3) { |
gs_520 = 'Authentication Failed [Wrong E-Mail or CBReceipt]n[Trades are not available]'; |
gs_528 = 'Authentication Failed: [Wrong E-Mail or CBReceipt] [Trades are not available]'; |
return (-2); |
} |
if (gi_496 -4) { |
gs_520 = 'Authentication Failed [Invalid Real Money Account Number]n[Trades are not available]'; |
gs_528 = 'Authentication Failed: [Invalid Real Money Account Number] [Trades are not available]'; |
return (-2); |
} |
if (*/gi_496 = 1;/*) {*/ |
SetVariables(); |
gs_520 = 'Authenticated [Trades are available]nThank you for joining the GPS Robot Team!'; |
gs_528 = 'Authenticatd: [Trades are available]'; |
return (1); |
/* |
} |
return (0); |
*/ |
} |
intRand(intai_0) { |
MathSrand(TimeLocal()); |
return (MathRand() % ai_0); |
} |
Ex4 To Mq4 Free Download
Copy lines Copy permalink
The possibilities of the PUREBEAM.BIZ EX4-TO-MQ4
The following list is a list of file extensions with which the PUREBEAM.BIZ EX4-TO-MQ4 can operate, both in terms of editing data in files, as well as their conversion. Keep in mind that even if the extension is supported by the PUREBEAM.BIZ EX4-TO-MQ4, it does not necessarily mean that we will be able to edit the data in this program. There is often a situation that we can only export the data in this format from the application PUREBEAM.BIZ EX4-TO-MQ4, but the data import is not supported.
How To Convert Ex4 To Mq4 Free
The correct version of the program
Keep in mind that the application PUREBEAM.BIZ EX4-TO-MQ4 in its various versions (older or newer ones) can support different file extensions. Usually, the newer the version is, the greater the number of file extensions supported by the application. Therefore, make sure to have the updated version of the PUREBEAM.BIZ EX4-TO-MQ4. To do this, the easiest way is to visit the manufacturer's website, the link to which you will find further in the webpage.
©2013 Electronic Arts Inc. Ncaa football 14 xbox 360.