-
أخي Cher09
السلام عليكم
أخي الكريم
أرجو مراجعة الكود هذا وإخباري بما يعتمد على دخوله وهو لايعمل علما انه مكسور الحماية ولا يحتاج لأي ملف دي ال ال
كود:
/*
Generated by EX4-TO-MQ4 decompiler V4.0.225.1g []
Website: http://purebeam.biz
E-mail : [email protected]
Decompiled and educated 2011-07-23 by Capella
*/
#property copyright "Copyright © GENIALBIT"
#property link "http://www.genialbit.com"
/* NO NEED FOR ANY DLL
#import "PIPSTIGER.dll"
int OrderCode();
int LicenseKey();
string ActivationStatus();
int LicenseManager();
void SetVariable(int a0, int a1, int a2);
#import
*/
extern string C1 = "--- GENERAL SETTINGS ---";
extern string ExpertName = "PipsTiger Fx 1.0";
extern int MagicNumber = 48569;
extern int PurchaseCode = 0;
extern string C2 = "--- MM SETTING ---";
extern double Lots = 0.1;
extern bool UseMM = TRUE;
extern int UseEquityPercentage = 1;
extern int SpreadLimit = 3;
extern int TakeProfit = 31;
extern int StopLoss = 115;
extern int Slippage = 2;
extern bool UseStartSLTP = TRUE;
extern int LimitLP = -58;
extern int SafeTarget = 1;
extern int SafeStartTarget = 8;
extern int CloseBuyFilter = 15;
extern int CloseSellFilter = 13;
extern string C3 = "--- MA SETTINGS ---";
extern int MAPeriod = 74;
extern int MAShift1 = 0;
extern int MAMethod = 2;
extern int MAAppliedPrice = 0;
extern int MAShift2 = 1;
extern int BuyFilterMA1 = 15;
extern int BuyFilterMA2 = 38;
extern int BuyFilterMA3 = 38;
extern int SellFilterMA1 = 15;
extern int SellFilterMA2 = 38;
extern string C4 = "--- CCI SETTINGS ---";
extern int CCIPeriod = 18;
extern int CCIAppliedPrice = 5;
extern int CCIShift = 1;
extern double TradeCCIFilter = 152.0;
extern string C5 = "--- ATR SETTINGS ---";
extern int ATRPeriod = 14;
extern int ATRShift = 1;
extern int TradeATRFilter = 7;
extern string C6 = "--- RSI SETTINGS ---";
extern bool UseRSI = FALSE;
extern int RSIPeriod = 14;
extern int RSIAppliedPrice = 0;
extern int RSIShift = 0;
extern int TradeRSIFilter = 60;
extern string C13 = "--- BOLLINGER BANDS SETTINGS ---";
extern bool UseBB = FALSE;
extern int BBPeriod = 20;
extern int BBDeviation = 2;
extern int BBBandsShift = 0;
extern int BBAppliedPrice = 0;
extern int BBModeBuy = 2;
extern int BBModeSell = 1;
extern int BBShift = 0;
extern string C7 = "--- WPR SETTINGS ---";
extern int WPRPeriod = 11;
extern int WPRShift = 1;
extern double BuyLimitWPR1 = -98.0;
extern double BuyLimitWPR2 = -94.0;
extern double SellLimitWPR1 = -4.0;
extern double BuyLimitWPR3 = -18.0;
extern double SellLimitWPR2 = -81.0;
extern string C8 = "--- PREFERENCES ---";
extern bool OpenBuy = TRUE;
extern bool OpenSell = TRUE;
extern bool TradeOnFriday = TRUE;
extern bool UseNews = FALSE;
extern bool NewsHighImpact = TRUE;
extern bool NewsMediumImpact = TRUE;
extern bool NewsSpeaks = TRUE;
extern bool NewsIncludeEURUSD = TRUE;
extern int MinUntilNextNews = 120;
extern int MinSincePrevNews = 120;
extern string C9 = "--- SESSION SETTING ---";
extern bool UseSession = FALSE;
extern bool Asian = TRUE;
extern bool Europe = TRUE;
extern bool NewYork = TRUE;
extern int GMTOffset = 1;
extern bool DaylightSavings = FALSE;
extern string C10 = "--- ASIAN SETTINGS ---";
extern bool AsianDaily = TRUE;
extern int AsianOpenSunday = 0;
extern int AsianCloseSunday = 8;
extern int AsianOpenMonday = 0;
extern int AsianCloseMonday = 8;
extern int AsianOpenTuesday = 0;
extern int AsianCloseTuesday = 8;
extern int AsianOpenWednesday = 0;
extern int AsianCloseWednesday = 8;
extern int AsianOpenThursday = 0;
extern int AsianCloseThursday = 8;
extern int AsianOpenFriday = 0;
extern int AsianCloseFriday = 8;
extern string C11 = "--- EUROPE SETTINGS ---";
extern bool EuropeDaily = TRUE;
extern int EuropeOpenSunday = 6;
extern int EuropeCloseSunday = 16;
extern int EuropeOpenMonday = 6;
extern int EuropeCloseMonday = 16;
extern int EuropeOpenTuesday = 6;
extern int EuropeCloseTuesday = 16;
extern int EuropeOpenWednesday = 6;
extern int EuropeCloseWednesday = 16;
extern int EuropeOpenThursday = 6;
extern int EuropeCloseThursday = 16;
extern int EuropeOpenFriday = 6;
extern int EuropeCloseFriday = 16;
extern string C12 = "--- NEW YORK SETTINGS ---";
extern bool NeyYorkDaily = TRUE;
extern int NYOpenSunday = 12;
extern int NYCloseSunday = 21;
extern int NYOpenMonday = 12;
extern int NYCloseMonday = 21;
extern int NYOpenTuesday = 12;
extern int NYCloseTuesday = 21;
extern int NYOpenWednesday = 12;
extern int NYCloseWednesday = 21;
extern int NYOpenThursday = 12;
extern int NYCloseThursday = 21;
extern int NYOpenFriday = 12;
extern int NYCloseFriday = 21;
bool gba_644[5];
int g_datetime_648;
double gd_652;
int gi_660;
string gs_664;
int gi_672 = 3;
int g_slippage_676;
int g_slippage_680;
int gi_684 = 1;
double gd_688;
int gi_unused_696;
int gi_unused_700 = 0;
int g_color_704 = Blue;
int g_color_708 = Red;
int g_color_712 = DodgerBlue;
int g_color_716 = DeepPink;
int gi_720 = 1;
bool gi_724 = FALSE;
/*
init parameters
string ts_unused_0, int ti_8, int ?i_unused_12, double td_16, double t_slippage_24, bool t_bool_0, int ?i_unused_36, bool t_bool_8, int ?i_unused_44, string ts_unused_48, bool t_bool_24, int ?i_unused_60, bool t_bool_0, int ?i_unused_68, int ?i_unused_72, int ?i_unused_76, bool t_bool_16, int ?i_unused_84, int a_cmd_0, int ?i_unused_92, double l_price_8, color l_color_16, int l_ticket_20, int l_error_24, string ls_unused_116, double l_price_36, double l_price_44, double l_price_52, double ld_148, double ld_156, double l_lots_76, int li_172, bool t_bool_88, int ?i_unused_180, double td_184, bool t_bool_104, int ?i_unused_196, bool l_bool_0, int li_204, int l_error_8, int l_ticket_12, string ls_unused_216, int l_pos_24, int t_cmd_28, int ?i_unused_232, double t_bool_36, string ts_unused_244, double t_bool_52, double td_260, double td_268, int ?i_unused_276, int li_280, int l_count_8, int l_count_12, int li_292, int l_error_20, int l_ticket_24, string ls_unused_304, int l_pos_36, int li_316, double t_cmd_44, double t_bool_52, int ?i_unused_336, int ?i_unused_340, double t_bool_68, double td_352, bool li_ret_360, bool li_364, bool li_368, bool li_372, double l_iclose_16, double l_ima_24, double l_iwpr_32, double l_iatr_40, double l_icci_48, double l_irsi_56, double l_ibands_64, int li_432, int li_436, double ld_440, double ld_448, double ld_456, double t_low_104, string ts_unused_472, double t_low_120, bool t_bool_128, int ?i_unused_492, bool li_ret_496, bool li_500, bool li_504, double l_iclose_12, double l_ima_20, double l_iwpr_28, double l_iatr_36, double l_icci_44, double l_irsi_52, double l_ibands_60, int li_564, int li_568, double ld_572, double ld_580, double t_high_92, int ?i_unused_596, int ?i_unused_600, double t_high_108, bool t_bool_116, int /
?i_unused_616, double ad_620, int ai_628, bool li_ret_632, bool li_636, bool li_640, double l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_676, double ld_684, double ld_692, double ld_700, double t_bool_88, double t_bool_96, double t_bool_104, double ad_732, int ai_740, bool li_ret_744, bool li_748, bool li_752, double l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_788, double ld_796, double ld_804, double ld_812, double t_bool_88, double t_bool_96, double t_bool_104, double td_844, double td_852, int ?i_unused_860, int ?i_unused_864, int li_868, int l_pos_4, bool t_bool_8, int ?i_unused_880, int ?i_unused_884, int ?i_unused_888, string ts_unused_892, int l_count_0, int li_904, int l_pos_8, bool t_bool_12, int ?i_unused_916, bool t_bool_20, int ?i_unused_924, int ?i_unused_928, int ?i_unused_932, bool t_bool_36, int ?i_unused_940, string ls_944, string ts_952, string ts_960, string ts_968, int ti_976, int ?i_unused_980, double ld_ret_984, double ld_992, double t_marginrequired_16, double t_bool_24, bool t_bool_32, int ?i_unused_1020, string ts_unused_1024, double td_1032, string asa_1040[2], int l_icustom_4, int l_icustom_8, bool li_ret_1052, int l_error_16, int li_1060, int l_index_24, double t_bool_28, string ts_1076, string ts_1084, bool t_bool_52, int ?i_unused_1096, bool li_ret_1100, int li_1104, int li_1108, int li_1112, int li_1116, int li_1120, int li_1124, int li_1128, bool li_1132, int t_bool_36, int ?i_unused_1140, int t_bool_44, int ?i_unused_1148, int ti_1152, int ?i_unused_1156, int ?i_unused_1160, int ?i_unused_1164, int ?i_unused_1168, int ?i_unused_1172, int ?i_unused_1176, int ?i_unused_1180, int /*<u
?i_unused_1184, int ?i_unused_1188, int ?i_unused_1192, int ?i_unused_1196, int ?i_unused_1200, int ?i_unused_1204, int ?i_unused_1208, int ?i_unused_1212, int ?i_unused_1216, int ?i_unused_1220, int ?i_unused_1224, int ?i_unused_1228, int ?i_unused_1232, int ?i_unused_1236, int ?i_unused_1240, int ?i_unused_1244, int ?i_unused_1248, int ?i_unused_1252, int ?i_unused_1256, int ?i_unused_1260, int ?i_unused_1264, int ?i_unused_1268, int ?i_unused_1272, int ?i_unused_1276, int ?i_unused_1280, int ?i_unused_1284, int ?i_unused_1288, int ?i_unused_1292, int ?i_unused_1296, int ?i_unused_1300, int ?i_unused_1304, int ?i_unused_1308, int ?i_unused_1312, int ?i_unused_1316, int ?i_unused_1320, int ?i_unused_1324, int ?i_unused_1328, int ?i_unused_1332, int ?i_unused_1336, int ?i_unused_1340, int ?i_unused_1344, int ?i_unused_1348, int ?i_unused_1352, int ?i_unused_1356, int ?i_unused_1360, int ?i_unused_1364, int ?i_unused_1368)
*/
void init()
{
gs_664 = Symbol();
if (Digits < 4) {
gd_652 = 0.01;
gi_660 = 2;
} else {
gd_652 = 0.0001;
gi_660 = 4;
}
g_slippage_676 = Slippage * MathPow(10, Digits - gi_660);
g_slippage_680 = gi_672 * MathPow(10, Digits - gi_660);
gd_688 = NormalizeDouble(SpreadLimit * gd_652, gi_660 + 1);
}
/*
deinit parameters
bool t_bool_0, int ?i_unused_4, bool t_bool_8, int ?i_unused_12, string ts_unused_16, bool t_bool_24, int ?i_unused_28, bool t_bool_0, int ?i_unused_36, int ?i_unused_40, int ?i_unused_44, bool t_bool_16, int ?i_unused_52, int a_cmd_0, int ?i_unused_60, double l_price_8, color l_color_16, int l_ticket_20, int l_error_24, string ls_unused_84, double l_price_36, double l_price_44, double l_price_52, double ld_116, double ld_124, double l_lots_76, int li_140, bool t_bool_88, int ?i_unused_148, double td_152, bool t_bool_104, int ?i_unused_164, bool l_bool_0, int li_172, int l_error_8, int l_ticket_12, string ls_unused_184, int l_pos_24, int t_cmd_28, int ?i_unused_200, double t_bool_36, string ts_unused_212, double t_bool_52, double td_228, double td_236, int ?i_unused_244, int li_248, int l_count_8, int l_count_12, int li_260, int l_error_20, int l_ticket_24, string ls_unused_272, int l_pos_36, int li_284, double t_cmd_44, double t_bool_52, int ?i_unused_304, int ?i_unused_308, double t_bool_68, double td_320, bool li_ret_328, bool li_332, bool li_336, bool li_340, double l_iclose_16, double l_ima_24, double l_iwpr_32, double l_iatr_40, double l_icci_48, double l_irsi_56, double l_ibands_64, int li_400, int li_404, double ld_408, double ld_416, double ld_424, double t_low_104, string ts_unused_440, double t_low_120, bool t_bool_128, int ?i_unused_460, bool li_ret_464, bool li_468, bool li_472, double l_iclose_12, double l_ima_20, double l_iwpr_28, double l_iatr_36, double l_icci_44, double l_irsi_52, double l_ibands_60, int li_532, int li_536, double ld_540, double ld_548, double t_high_92, int ?i_unused_564, int ?i_unused_568, double t_high_108, bool t_bool_116, int ?i_unused_584, double ad_588, int ai_596, bool li_ret_600, bool li_604, bool li_608, do
uble l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_644, double ld_652, double ld_660, double ld_668, double t_bool_88, double t_bool_96, double t_bool_104, double ad_700, int ai_708, bool li_ret_712, bool li_716, bool li_720, double l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_756, double ld_764, double ld_772, double ld_780, double t_bool_88, double t_bool_96, double t_bool_104, double td_812, double td_820, int ?i_unused_828, int ?i_unused_832, int li_836, int l_pos_4, bool t_bool_8, int ?i_unused_848, int ?i_unused_852, int ?i_unused_856, string ts_unused_860, int l_count_0, int li_872, int l_pos_8, bool t_bool_12, int ?i_unused_884, bool t_bool_20, int ?i_unused_892, int ?i_unused_896, int ?i_unused_900, bool t_bool_36, int ?i_unused_908, string ls_912, string ts_920, string ts_928, string ts_936, int ti_944, int ?i_unused_948, double ld_ret_952, double ld_960, double t_marginrequired_16, double t_bool_24, bool t_bool_32, int ?i_unused_988, string ts_unused_992, double td_1000, string asa_1008[2], int l_icustom_4, int l_icustom_8, bool li_ret_1020, int l_error_16, int li_1028, int l_index_24, double t_bool_28, string ts_1044, string ts_1052, bool t_bool_52, int ?i_unused_1064, bool li_ret_1068, int li_1072, int li_1076, int li_1080, int li_1084, int li_1088, int li_1092, int li_1096, bool li_1100, int t_bool_36, int ?i_unused_1108, int t_bool_44, int ?i_unused_1116, int ti_1120, int ?i_unused_1124, int ?i_unused_1128, int ?i_unused_1132, int ?i_unused_1136, int ?i_unused_1140, int ?i_unused_1144, int ?i_unused_1148, int ?i_unused_1152, int ?i_unused_1156, int ?i_unused_1160, int /*<u
?i_unused_1164, int ?i_unused_1168, int ?i_unused_1172, int ?i_unused_1176, int ?i_unused_1180, int ?i_unused_1184, int ?i_unused_1188, int ?i_unused_1192, int ?i_unused_1196, int ?i_unused_1200, int ?i_unused_1204, int ?i_unused_1208, int ?i_unused_1212, int ?i_unused_1216, int ?i_unused_1220, int ?i_unused_1224, int ?i_unused_1228, int ?i_unused_1232, int ?i_unused_1236, int ?i_unused_1240, int ?i_unused_1244, int ?i_unused_1248, int ?i_unused_1252, int ?i_unused_1256, int ?i_unused_1260, int ?i_unused_1264, int ?i_unused_1268, int ?i_unused_1272, int ?i_unused_1276, int ?i_unused_1280, int ?i_unused_1284, int ?i_unused_1288, int ?i_unused_1292, int ?i_unused_1296, int ?i_unused_1300, int ?i_unused_1304, int ?i_unused_1308, int ?i_unused_1312, int ?i_unused_1316, int ?i_unused_1320, int ?i_unused_1324, int ?i_unused_1328, int ?i_unused_1332, int ?i_unused_1336, int ?i_unused_1340, int ?i_unused_1344, int ?i_unused_1348, int ?i_unused_1352, int ?i_unused_1356)
*/
int deinit()
{
return (0);
}
/* start parameters
bool t_bool_0, int ?i_unused_4, bool t_bool_8, int ?i_unused_12, string ts_unused_16, bool t_bool_24, int ?i_unused_28, bool t_bool_0, int ?i_unused_36, int ?i_unused_40, int ?i_unused_44, bool t_bool_16, int ?i_unused_52, int a_cmd_0, int ?i_unused_60, double l_price_8, color l_color_16, int l_ticket_20, int l_error_24, string ls_unused_84, double l_price_36, double l_price_44, double l_price_52, double ld_116, double ld_124, double l_lots_76, int li_140, bool t_bool_88, int ?i_unused_148, double td_152, bool t_bool_104, int ?i_unused_164, bool l_bool_0, int li_172, int l_error_8, int l_ticket_12, string ls_unused_184, int l_pos_24, int t_cmd_28, int ?i_unused_200, double t_bool_36, string ts_unused_212, double t_bool_52, double td_228, double td_236, int ?i_unused_244, int li_248, int l_count_8, int l_count_12, int li_260, int l_error_20, int l_ticket_24, string ls_unused_272, int l_pos_36, int li_284, double t_cmd_44, double t_bool_52, int ?i_unused_304, int ?i_unused_308, double t_bool_68, double td_320, bool li_ret_328, bool li_332, bool li_336, bool li_340, double l_iclose_16, double l_ima_24, double l_iwpr_32, double l_iatr_40, double l_icci_48, double l_irsi_56, double l_ibands_64, int li_400, int li_404, double ld_408, double ld_416, double ld_424, double t_low_104, string ts_unused_440, double t_low_120, bool t_bool_128, int ?i_unused_460, bool li_ret_464, bool li_468, bool li_472, double l_iclose_12, double l_ima_20, double l_iwpr_28, double l_iatr_36, double l_icci_44, double l_irsi_52, double l_ibands_60, int li_532, int li_536, double ld_540, double ld_548, double t_high_92, int ?i_unused_564, int ?i_unused_568, double t_high_108, bool t_bool_116, int ?i_unused_584, double ad_588, int ai_596, bool li_ret_600, bool li_604, bool li_608, do
uble l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_644, double ld_652, double ld_660, double ld_668, double t_bool_88, double t_bool_96, double t_bool_104, double ad_700, int ai_708, bool li_ret_712, bool li_716, bool li_720, double l_iwpr_24, double l_iclose_32, double l_iopen_40, double l_iclose_48, double ld_756, double ld_764, double ld_772, double ld_780, double t_bool_88, double t_bool_96, double t_bool_104, double td_812, double td_820, int ?i_unused_828, int ?i_unused_832, int li_836, int l_pos_4, bool t_bool_8, int ?i_unused_848, int ?i_unused_852, int ?i_unused_856, string ts_unused_860, int l_count_0, int li_872, int l_pos_8, bool t_bool_12, int ?i_unused_884, bool t_bool_20, int ?i_unused_892, int ?i_unused_896, int ?i_unused_900, bool t_bool_36, int ?i_unused_908, string ls_912, string ts_920, string ts_928, string ts_936, int ti_944, int ?i_unused_948, double ld_ret_952, double ld_960, double t_marginrequired_16, double t_bool_24, bool t_bool_32, int ?i_unused_988, string ts_unused_992, double td_1000, string asa_1008[2], int l_icustom_4, int l_icustom_8, bool li_ret_1020, int l_error_16, int li_1028, int l_index_24, double t_bool_28, string ts_1044, string ts_1052, bool t_bool_52, int ?i_unused_1064, bool li_ret_1068, int li_1072, int li_1076, int li_1080, int li_1084, int li_1088, int li_1092, int li_1096, bool li_1100, int t_bool_36, int ?i_unused_1108, int t_bool_44, int ?i_unused_1116, int ti_1120, int ?i_unused_1124, int ?i_unused_1128, int ?i_unused_1132, int ?i_unused_1136, int ?i_unused_1140, int ?i_unused_1144, int ?i_unused_1148, int ?i_unused_1152, int ?i_unused_1156, int ?i_unused_1160, int /*<u
?i_unused_1164, int ?i_unused_1168, int ?i_unused_1172, int ?i_unused_1176, int ?i_unused_1180, int ?i_unused_1184, int ?i_unused_1188, int ?i_unused_1192, int ?i_unused_1196, int ?i_unused_1200, int ?i_unused_1204, int ?i_unused_1208, int ?i_unused_1212, int ?i_unused_1216, int ?i_unused_1220, int ?i_unused_1224, int ?i_unused_1228, int ?i_unused_1232, int ?i_unused_1236, int ?i_unused_1240, int ?i_unused_1244, int ?i_unused_1248, int ?i_unused_1252, int ?i_unused_1256, int ?i_unused_1260, int ?i_unused_1264, int ?i_unused_1268, int ?i_unused_1272, int ?i_unused_1276, int ?i_unused_1280, int ?i_unused_1284, int ?i_unused_1288, int ?i_unused_1292, int ?i_unused_1296, int ?i_unused_1300, int ?i_unused_1304, int ?i_unused_1308, int ?i_unused_1312, int ?i_unused_1316, int ?i_unused_1320, int ?i_unused_1324, int ?i_unused_1328, int ?i_unused_1332, int ?i_unused_1336, int ?i_unused_1340, int ?i_unused_1344, int ?i_unused_1348, int ?i_unused_1352, int ?i_unused_1356)
*/
int start()
{
// SetVariable(PurchaseCode, IsTesting(), IsDemo());
// if (LicenseManager() == 3)
{
if (UseNews == TRUE)
if (NewsExist()) return (0);
if (!CheckSession()) return (0);
CloseOrders();
ModifyOrders();
if (iBars(Symbol(), PERIOD_M15) < MAPeriod || iBars(Symbol(), PERIOD_M15) < WPRPeriod || iBars(Symbol(), PERIOD_M15) < ATRPeriod || iBars(Symbol(), PERIOD_M15) < CCIPeriod) return;
if (TradeOnFriday == FALSE && DayOfWeek() == 5) return (0);
if (DayOfWeek() == 1 && iVolume(NULL, PERIOD_D1, 0) < 5.0) return (0);
if (StringLen(gs_664) < 6) return (0);
if ((!IsTesting()) && IsStopped()) return (0);
if ((!IsTesting()) && !IsTradeAllowed()) return (0);
if ((!IsTesting()) && IsTradeContextBusy()) return (0);
HideTestIndicators(TRUE);
Trader();
ShowComments();
}
return (0);
}
void Trader()
{
if (MaxSpreadFilter())
{
gi_unused_696 = 1;
return;
}
gi_unused_696 = 0;
if (OpenLongSignal() && OpenTradeCount() && OpenBuy) OpenPosition(OP_BUY);
if (OpenShortSignal() && OpenTradeCount() && OpenSell) OpenPosition(OP_SELL);
}
int OpenPosition(int a_cmd_0) {
double l_price_8;
color l_color_16;
int l_ticket_20;
int l_error_24;
string ls_unused_28;
double l_price_36;
double l_price_44;
double l_price_52;
double l_lots_76;
double ld_60 = NormalizeDouble(TakeProfit * gd_652, gi_660);
double ld_68 = NormalizeDouble(StopLoss * gd_652, gi_660);
if (UseMM) l_lots_76 = MM();
else l_lots_76 = Lots;
if (AccountFreeMarginCheck(gs_664, a_cmd_0, l_lots_76) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-1);
RefreshRates();
if (a_cmd_0 == OP_BUY) {
l_price_36 = Ask;
l_color_16 = g_color_704;
if (UseStartSLTP) {
l_price_44 = l_price_36 + ld_60;
l_price_52 = l_price_36 - ld_68;
} else {
l_price_44 = 0;
l_price_52 = 0;
}
} else {
l_price_36 = Bid;
l_color_16 = g_color_708;
if (UseStartSLTP) {
l_price_44 = l_price_36 - ld_60;
l_price_52 = l_price_36 + ld_68;
} else {
l_price_44 = 0;
l_price_52 = 0;
}
}
int li_84 = gi_684;
while (li_84 > 0 && OpenTradeCount())
{
l_ticket_20 = OrderSend(gs_664, a_cmd_0, l_lots_76, l_price_36, g_slippage_676, l_price_52, l_price_44, ExpertName, MagicNumber, 0, l_color_16);
if (l_ticket_20 < 0) {
l_error_24 = GetLastError();
if (l_error_24 != 136/* OFF_QUOTES */) break;
if (!(gi_724)) break;
Sleep(6000);
RefreshRates();
if (a_cmd_0 == OP_BUY) l_price_8 = Ask;
else l_price_8 = Bid;
if (NormalizeDouble(MathAbs((l_price_8 - l_price_36) / gd_652), 0) > gi_720) break;
l_price_36 = l_price_8;
li_84--;
} else
if (OrderSelect(l_ticket_20, SELECT_BY_TICKET)) l_price_36 = OrderOpenPrice();
}
return (l_ticket_20);
}
void ModifyOrders()
{
bool l_bool_0;
int li_4 = OrdersTotal() - 1;
int l_error_8 = GetLastError();
int l_ticket_12 = OrderTicket();
string ls_unused_16 = OrderType();
for (int l_pos_24 = li_4; l_pos_24 >= 0; l_pos_24--) {
if (OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY) {
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == gs_664)
if (Bid - OrderOpenPrice() > SafeStartTarget * gd_652 && MathAbs(OrderOpenPrice() + SafeTarget * gd_652 - OrderStopLoss()) >= Point) l_bool_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + SafeTarget * gd_652, Digits), OrderTakeProfit(), 0, Blue);
}
if (OrderType() == OP_SELL) {
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == gs_664)
if (OrderOpenPrice() - Ask > SafeStartTarget * gd_652 && MathAbs(OrderOpenPrice() - SafeTarget * gd_652 - OrderStopLoss()) >= Point) l_bool_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - SafeTarget * gd_652, Digits), OrderTakeProfit(), 0, Red);
}
}
}
}
void CloseOrders()
{
int li_4 = OrdersTotal() - 1;
int l_count_8 = 0;
int l_count_12 = 0;
int li_16 = 3;
int l_error_20 = GetLastError();
int l_ticket_24 = OrderTicket();
string ls_unused_28 = OrderType();
for (int l_pos_36 = li_4; l_pos_36 >= 0; l_pos_36--) {
if (OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY) {
l_count_8++;
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == gs_664) {
if (Bid >= OrderOpenPrice() + TakeProfit * gd_652 || Bid <= OrderOpenPrice() - StopLoss * gd_652 || CloseLongSignal(OrderOpenPrice(), ExistPosition())) {
for (int li_40 = 1; li_40 <= MathMax(1, li_16); li_40++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), g_slippage_680, g_color_712)) {
l_count_8--;
break;
}
}
}
}
}
if (OrderType() == OP_SELL) {
l_count_12++;
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == gs_664) {
if (Ask <= OrderOpenPrice() - TakeProfit * gd_652 || Ask >= OrderOpenPrice() + StopLoss * gd_652 || CloseShortSignal(OrderOpenPrice(), ExistPosition())) {
for (li_40 = 1; li_40 <= MathMax(1, li_16); li_40++) {
RefreshRates();
if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), g_slippage_680, g_color_716)) {
l_count_12--;
break;
}
}
}
}
}
}
}
}
int OpenLongSignal()
{
bool li_ret_0 = FALSE;
bool li_4 = FALSE;
bool li_8 = FALSE;
bool li_12 = FALSE;
double l_iclose_16 = iClose(NULL, PERIOD_M15, 1);
double l_ima_24 = iMA(NULL, PERIOD_M15, MAPeriod, MAShift1, MAMethod, MAAppliedPrice, MAShift2);
double l_iwpr_32 = iWPR(NULL, PERIOD_M15, WPRPeriod, WPRShift);
double l_iatr_40 = iATR(NULL, PERIOD_M15, ATRPeriod, ATRShift);
double l_icci_48 = iCCI(NULL, PERIOD_M15, CCIPeriod, CCIAppliedPrice, CCIShift);
double l_irsi_56 = iRSI(NULL, PERIOD_M15, RSIPeriod, RSIAppliedPrice, RSIShift);
double l_ibands_64 = iBands(Symbol(), 0, BBPeriod, BBDeviation, BBBandsShift, BBAppliedPrice, BBModeBuy, BBShift);
int li_72 = l_iclose_16 / gd_652;
int li_76 = Bid / gd_652;
double ld_80 = NormalizeDouble(BuyFilterMA1 * gd_652, gi_660);
double ld_88 = NormalizeDouble(BuyFilterMA2 * gd_652, gi_660);
double ld_96 = NormalizeDouble(BuyFilterMA3 * gd_652, gi_660);
if (UseBB)
if (Low[BBShift] >= l_ibands_64) return (0);
if (UseRSI)
if (l_irsi_56 <= TradeRSIFilter) return (0);
if (l_iatr_40 <= TradeATRFilter * gd_652) return (0);
if (l_iclose_16 >= l_ima_24 + ld_80 && li_72 >= li_76 && BuyLimitWPR1 > l_iwpr_32) li_4 = TRUE;
else li_4 = FALSE;
if (l_iclose_16 >= l_ima_24 + ld_88 && li_72 >= li_76 && (-TradeCCIFilter) > l_icci_48) li_8 = TRUE;
else li_8 = FALSE;
if (l_iclose_16 >= l_ima_24 + ld_96 && li_72 >= li_76 && BuyLimitWPR2 > l_iwpr_32) li_12 = TRUE;
else li_12 = FALSE;
if (li_4 == TRUE || li_8 == TRUE || li_12 == TRUE) li_ret_0 = TRUE;
else li_ret_0 = FALSE;
return (li_ret_0);
}
int OpenShortSignal()
{
bool li_ret_0 = FALSE;
bool li_4 = FALSE;
bool li_8 = FALSE;
double l_iclose_12 = iClose(NULL, PERIOD_M15, 1);
double l_ima_20 = iMA(NULL, PERIOD_M15, MAPeriod, MAShift1, MAMethod, MAAppliedPrice, MAShift2);
double l_iwpr_28 = iWPR(NULL, PERIOD_M15, WPRPeriod, WPRShift);
double l_iatr_36 = iATR(NULL, PERIOD_M15, ATRPeriod, ATRShift);
double l_icci_44 = iCCI(NULL, PERIOD_M15, CCIPeriod, CCIAppliedPrice, CCIShift);
double l_irsi_52 = iRSI(NULL, PERIOD_M15, RSIPeriod, RSIAppliedPrice, RSIShift);
double l_ibands_60 = iBands(Symbol(), 0, BBPeriod, BBDeviation, BBBandsShift, BBAppliedPrice, BBModeSell, BBShift);
int li_68 = l_iclose_12 / gd_652;
int li_72 = Bid / gd_652;
double ld_76 = NormalizeDouble(SellFilterMA1 * gd_652, gi_660);
double ld_84 = NormalizeDouble(SellFilterMA2 * gd_652, gi_660);
if (UseBB)
if (High[BBShift] <= l_ibands_60) return (0);
if (UseRSI)
if (l_irsi_52 <= TradeRSIFilter) return (0);
if (l_iatr_36 <= TradeATRFilter * gd_652) return (0);
if (l_iclose_12 <= l_ima_20 - ld_76 && li_68 <= li_72 && l_iwpr_28 > SellLimitWPR1) li_4 = TRUE;
else li_4 = FALSE;
if (l_iclose_12 <= l_ima_20 - ld_84 && li_68 <= li_72 && l_icci_44 > TradeCCIFilter) li_8 = TRUE;
else li_8 = FALSE;
if (li_4 == TRUE || li_8 == TRUE) li_ret_0 = TRUE;
else li_ret_0 = FALSE;
return (li_ret_0);
}
int CloseLongSignal(double ad_0, int ai_8)
{
bool li_ret_12 = FALSE;
bool li_16 = FALSE;
bool li_20 = FALSE;
double l_iwpr_24 = iWPR(NULL, PERIOD_M15, WPRPeriod, WPRShift);
double l_iclose_32 = iClose(NULL, PERIOD_M15, 1);
double l_iopen_40 = iOpen(NULL, PERIOD_M1, 1);
double l_iclose_48 = iClose(NULL, PERIOD_M1, 1);
double ld_56 = NormalizeDouble((-LimitLP) * gd_652, gi_660);
double ld_64 = NormalizeDouble(l_iclose_32, gi_660);
double ld_72 = NormalizeDouble(Bid, gi_660);
double ld_80 = NormalizeDouble(CloseBuyFilter * gd_652, gi_660);
if (ad_0 - Bid <= ld_56 && ld_64 <= ld_72 && l_iwpr_24 > BuyLimitWPR3 && ai_8 == 1) li_16 = TRUE;
else li_16 = FALSE;
if (l_iopen_40 > l_iclose_48 && Bid - ad_0 >= ld_80 && ai_8 == 1) li_20 = TRUE;
else li_20 = FALSE;
if (li_16 == TRUE || li_20 == TRUE) li_ret_12 = TRUE;
else li_ret_12 = FALSE;
return (li_ret_12);
}
int CloseShortSignal(double ad_0, int ai_8)
{
bool li_ret_12 = FALSE;
bool li_16 = FALSE;
bool li_20 = FALSE;
double l_iwpr_24 = iWPR(NULL, PERIOD_M15, WPRPeriod, WPRShift);
double l_iclose_32 = iClose(NULL, PERIOD_M15, 1);
double l_iopen_40 = iOpen(NULL, PERIOD_M1, 1);
double l_iclose_48 = iClose(NULL, PERIOD_M1, 1);
double ld_56 = NormalizeDouble((-LimitLP) * gd_652, gi_660);
double ld_64 = NormalizeDouble(l_iclose_32, gi_660);
double ld_72 = NormalizeDouble(Bid, gi_660);
double ld_80 = NormalizeDouble(CloseSellFilter * gd_652, gi_660);
if (Ask - ad_0 <= ld_56 && ld_64 >= ld_72 && l_iwpr_24 < SellLimitWPR2 && ai_8 == 1) li_16 = TRUE;
else li_16 = FALSE;
if (l_iopen_40 < l_iclose_48 && ad_0 - Ask >= ld_80 && ai_8 == 1) li_20 = TRUE;
else li_20 = FALSE;
if (li_16 == TRUE || li_20 == TRUE) li_ret_12 = TRUE;
else li_ret_12 = FALSE;
return (li_ret_12);
}
bool MaxSpreadFilter()
{
RefreshRates();
if (10000.0 * (Ask - Bid) > SpreadLimit) return (TRUE);
return (FALSE);
}
int ExistPosition() {
int li_0 = OrdersTotal() - 1;
for (int l_pos_4 = li_0; l_pos_4 >= 0; l_pos_4--) {
if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderMagicNumber() == MagicNumber) {
if (OrderSymbol() == gs_664)
if (OrderType() <= OP_SELL) return (1);
}
}
}
return (0);
}
int OpenTradeCount()
{
int l_count_0 = 0;
int li_4 = OrdersTotal() - 1;
for (int l_pos_8 = li_4; l_pos_8 >= 0; l_pos_8--) {
if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES))
if (OrderMagicNumber() == MagicNumber && OrderSymbol() == gs_664) l_count_0++;
}
if (l_count_0 >= gi_684) return (0);
return (1);
}
void ShowComments()
{
string ls_0 = "";
ls_0 = ls_0
+ "\n "
+ "\n Copyright © GENIALBIT.COM"
+ "\n " + ExpertName;
// + "\n Purchase code: " + OrderCode()
// + "\n Activation Key: " + LicenseKey()
// + "\n Ativation Status: " + ActivationStatus();
Comment(ls_0);
}
double MM()
{
double ld_ret_0 = 0.0;
double ld_8 = AccountEquity() * (UseEquityPercentage / 100.0) / (MarketInfo(Symbol(), MODE_MARGINREQUIRED) * MarketInfo(Symbol(), MODE_MINLOT)) * MarketInfo(Symbol(), MODE_MINLOT) / 2.0;
if (ld_8 < MarketInfo(Symbol(), MODE_MINLOT)) ld_8 = MarketInfo(Symbol(), MODE_MINLOT);
if (UseEquityPercentage != 0) {
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) ld_ret_0 = NormalizeDouble(ld_8, 2);
else
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.05 || MarketInfo(Symbol(), MODE_LOTSTEP) == 0.1) ld_ret_0 = NormalizeDouble(ld_8, 1);
}
return (ld_ret_0);
}
bool NewsExist()
{
string lsa_0[2];
int l_icustom_4;
int l_icustom_8;
bool li_ret_12;
if (!UseNews) return (FALSE);
lsa_0[0] = Symbol();
lsa_0[1] = "EURUSD";
GetLastError();
int li_20 = 1;
if (NewsIncludeEURUSD) li_20 = 2;
for (int l_index_24 = 0; l_index_24 < li_20; l_index_24++) {
l_icustom_4 = iCustom(NULL, 0, "NewsFilter", lsa_0[l_index_24], NewsHighImpact, NewsMediumImpact, 0, NewsSpeaks, 1, 1, 0);
l_icustom_8 = iCustom(NULL, 0, "NewsFilter", lsa_0[l_index_24], NewsHighImpact, NewsMediumImpact, 0, NewsSpeaks, 1, 1, 1);
if (l_icustom_8 <= MinUntilNextNews || l_icustom_4 <= MinSincePrevNews) li_ret_12 = TRUE;
}
int l_error_16 = GetLastError();
if (l_error_16 > 0/* NO_ERROR */) return (TRUE);
return (li_ret_12);
}
bool CheckSession()
{
int li_4;
int li_8;
int li_12;
int li_16;
int li_20;
int li_24;
int li_28;
bool li_32;
bool li_ret_0 = TRUE;
if (UseSession) {
li_4 = GMTOffset;
if (DaylightSavings) li_4 = GMTOffset + 1;
li_8 = li_4 + 0;
li_12 = li_4 + 8;
li_16 = li_4 + 6;
li_20 = li_4 + 16;
li_24 = li_4 + 12;
li_28 = li_4 + 21;
if (DayOfWeek() == 0) {
if (AsianDaily) {
li_8 = AsianOpenSunday;
li_12 = AsianCloseSunday;
}
if (EuropeDaily) {
li_16 = EuropeOpenSunday;
li_20 = EuropeCloseSunday;
}
if (NeyYorkDaily) {
li_24 = NYOpenSunday;
li_28 = NYCloseSunday;
}
if (!gba_644[0]) {
gba_644[0] = 1;
g_datetime_648 = TimeCurrent();
gba_644[5] = 0;
}
}
if (DayOfWeek() == 1) {
if (AsianDaily) {
li_8 = AsianOpenMonday;
li_12 = AsianCloseMonday;
}
if (EuropeDaily) {
li_16 = EuropeOpenMonday;
li_20 = EuropeCloseMonday;
}
if (NeyYorkDaily) {
li_24 = NYOpenMonday;
li_28 = NYCloseMonday;
}
if (!gba_644[1]) {
gba_644[1] = 1;
g_datetime_648 = TimeCurrent();
gba_644[0] = 0;
}
}
if (DayOfWeek() == 2) {
if (AsianDaily) {
li_8 = AsianOpenTuesday;
li_12 = AsianCloseTuesday;
}
if (EuropeDaily) {
li_16 = EuropeOpenTuesday;
li_20 = EuropeCloseTuesday;
}
if (NeyYorkDaily) {
li_24 = NYOpenTuesday;
li_28 = NYCloseTuesday;
}
if (!gba_644[2]) {
gba_644[2] = 1;
g_datetime_648 = TimeCurrent();
gba_644[1] = 0;
}
}
if (DayOfWeek() == 3) {
if (AsianDaily) {
li_8 = AsianOpenWednesday;
li_12 = AsianCloseWednesday;
}
if (EuropeDaily) {
li_16 = EuropeOpenWednesday;
li_20 = EuropeCloseWednesday;
}
if (NeyYorkDaily) {
li_24 = NYOpenWednesday;
li_28 = NYCloseWednesday;
}
if (!gba_644[3]) {
gba_644[3] = 1;
g_datetime_648 = TimeCurrent();
gba_644[2] = 0;
}
}
if (DayOfWeek() == 4) {
if (AsianDaily) {
li_8 = AsianOpenThursday;
li_12 = AsianCloseThursday;
}
if (EuropeDaily) {
li_16 = EuropeOpenThursday;
li_20 = EuropeCloseThursday;
}
if (NeyYorkDaily) {
li_24 = NYOpenThursday;
li_28 = NYCloseThursday;
}
if (!gba_644[4]) {
gba_644[4] = 1;
g_datetime_648 = TimeCurrent();
gba_644[3] = 0;
}
}
if (DayOfWeek() == 5) {
if (AsianDaily) {
li_8 = AsianOpenFriday;
li_12 = AsianCloseFriday;
}
if (EuropeDaily) {
li_16 = EuropeOpenFriday;
li_20 = EuropeCloseFriday;
}
if (NeyYorkDaily) {
li_24 = NYOpenFriday;
li_28 = NYCloseFriday;
}
if (!gba_644[5]) {
gba_644[5] = 1;
g_datetime_648 = TimeCurrent();
gba_644[4] = 0;
}
}
li_32 = FALSE;
if (Asian && Hour() >= li_8 && Hour() <= li_12) li_32 = TRUE;
if (Europe && Hour() >= li_16 && Hour() <= li_20) li_32 = TRUE;
if (NewYork && Hour() >= li_24 && Hour() <= li_28) li_32 = TRUE;
li_ret_0 = li_32;
}
return (li_ret_0);
}