السلام عليكم

أخي الكريم

أرجو مراجعة الكود هذا وإخباري بما يعتمد على دخوله وهو لايعمل علما انه مكسور الحماية ولا يحتاج لأي ملف دي ال ال

كود:
/*
   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);
}