#property copyright "Copyright@2007-2008 by Yohanes R.Gagahlin-ForexHope.com" #property link "http://www.ForexHope.com" #import "wininet.dll" int InternetOpenA(string a0, int a1, string a2, string a3, int a4); int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5); int InternetReadFile(int a0, string a1, int a2, int& a3[]); int InternetCloseHandle(int a0); #import string gs_unused_76 = "Drembuilder-FX (DTS-1) is CLIENT/SLAVE VERSION EA, it will not work alone without connect to our server"; string gs_unused_84 = "Drembuilder-FX (DTS-1) EA, its trading techniques and its source code is copyrighted"; string gs_unused_92 = "in the United States Patent and Trademark Office."; string gs_unused_100 = "The author Yohanes Rachmad Gagahlin is the sole owner of the code and trading method and"; string gs_unused_108 = "only he has the right to copyright and trademark PointBreak code and trading system and method."; string gs_unused_116 = "Leave the authors name and everything in the code as original, do not remove any code from the file."; string gs_unused_124 = "Do not modify, post at any forum, email or sell DTS-1 EA source code."; int gi_132 = D'01.01.2010 03:30'; string gs_136; string gs_144; string gs_152; string gs_160 = "validate.php?"; string gs_168 = "varParam.php?"; string gs_dts_176 = "DTS"; string gs_192; string gs_dummy_200; int g_datetime_208; string gs_dummy_212; string gs_dummy_220; string gs_dummy_228; string gs_dummy_236; string gs_244; int gi_252 = 1; int gi_256 = 20; int gi_260; int gi_unused_264; int gi_unused_268; bool gi_272 = TRUE; int gi_276 = 48; int gi_280 = 5; int g_count_284 = 0; int gi_288; int gi_292 = 3600; int g_str2int_296; int g_str2int_300; int g_str2int_316; int g_str2int_320; int g_str2int_324; int g_str2int_328; int g_str2int_332; int g_str2int_336; int g_str2int_340; int g_str2int_344; int g_str2int_348; int g_str2int_352; int g_str2int_356; int g_str2int_360; int g_str2int_364; int g_str2int_368; int g_str2int_372; int g_str2int_376; int g_str2int_380; int g_str2int_384; extern int Risk_Setting = 1; extern double Initial_Capital = 10000.0; extern int SP_Distance = 100; extern bool Check_Position_Left = FALSE; extern bool MiniAccount = FALSE; extern bool Show_Target_Line = TRUE; extern bool Use_Keltner_Entry = TRUE; extern bool Enable_Watermark_Calc = TRUE; extern int Start_Trading_Day = 0; extern int End_Trading_Day = 4; extern int MaxSpread_Allowed = 5; extern string Setting1 = "---------------Stop Loss Control--------------"; extern int StopLoss_OpenPosNum = 0; extern int StopLoss_Distance = 0; extern double StopLoss_Percentage = 0.0; extern string Setting2 = "----------------C Cycle Control---------------"; extern bool Enable_C1 = TRUE; extern bool Enable_C2 = TRUE; extern bool Enable_C3 = FALSE; extern bool Enable_C4 = FALSE; extern bool Enable_C_Buy = TRUE; extern bool Enable_C_Sell = TRUE; extern string Setting3 = "-------Automatic MSP Control for Cycle--------"; extern bool Enable_ASP_C1 = TRUE; extern bool Enable_ASP_C2 = TRUE; extern bool Enable_ASP_C3 = TRUE; extern bool Enable_ASP_C4 = TRUE; extern string Setting4 = "------------ADDITIONAL-Cycles Control----------"; extern bool Enable_BRT_Pyramiding = TRUE; extern bool Enable_INV_Pyramiding = TRUE; extern bool Enable_REV_Pyramiding = TRUE; extern bool Enable_SCA_Pyramiding = TRUE; extern int Pos_Open_BRT = 50; extern int Pos_Open_INV = 50; extern int Pos_Open_REV = 50; extern int Pos_Open_SCA = 50; extern int Max_Open_BRT = 20; extern int Max_Open_INV = 20; extern int Max_Open_REV = 20; extern int Max_Open_SCA = 20; extern int Target_Distance_BRT = 100; extern int Profit_Target_INV = 50; extern int Profit_Target_REV = 100; extern int Profit_Target_SCA = 20; extern double Multiply_Lot_BRT = 2.0; extern double Multiply_Lot_INV = 1.0; extern double Multiply_Lot_REV = 2.0; extern double Multiply_Lot_SCA = 2.0; extern int Pos_Distance_BRT = 2; extern int Pos_Distance_INV = 5; extern int Pos_Distance_REV = 2; extern int Pos_Distance_SCA = 2; extern string Setting5 = "---------------Users Lot Size----------------"; extern double Lots_C1 = 0.01; extern double Lots_C2 = 0.01; extern double Lots_C3 = 0.01; extern double Lots_C4 = 0.01; extern string Setting6 = "-------------FORCE CLOSE Cycle---------------"; extern bool Force_CLOSE_Above = FALSE; extern bool Force_CLOSE_Below = FALSE; extern int Force_CLOSE_CycleNum = 0; extern double Force_CLOSE_LimitPrice = 0.0; extern string Setting7 = "-------------FORCE MSP Control---------------"; extern bool Force_MSP_Above = FALSE; extern bool Force_MSP_Below = FALSE; extern int Force_MSP_CycleNum = 0; extern double Force_MSP_LimitPrice = 0.0; extern double Force_MSP_BottomPrice = 0.0; extern double Force_MSP_TopPrice = 0.0; extern bool Move_SP = TRUE; extern bool Force_MSP_ADDCYCLE_Only = FALSE; bool gi_756 = FALSE; double gd_760 = 0.0; double gd_768 = 0.0; double gd_776 = 0.0; double gd_784 = 0.0; double gd_792 = 0.0; int gi_800 = 0; bool gi_804 = FALSE; int gi_808; int gi_812; int gi_816 = 0; int gi_820 = 1; int gi_unused_824 = 3; int gi_828 = 13; int gi_832 = 100; int gi_836 = 20; int gi_840 = 1000; double gd_844; double gd_852; double gd_860; double gd_868; int gi_876 = 3; double gd_880 = -0.2; bool gi_888 = FALSE; int gi_892 = 1; int g_period_896 = 12; int g_period_900 = 19; int g_period_904 = 12; int g_period_908 = 9; int g_period_912 = 50; int g_slippage_916 = 4; int g_magic_920 = 10401; int g_magic_924 = 10402; int g_magic_928 = 10403; int g_magic_932 = 10404; string g_var_name_936 = "Last Watermark"; string gs_rsis_944 = "RSIS"; string gs_rsib_952 = "RSIB"; string gs_rsis_h4_960 = "RSIS H4"; string gs_rsib_h4_968 = "RSIB H4"; string g_var_name_976 = "Total Simultaneous Close"; string g_var_name_984 = "Hanging Upperband"; string g_var_name_992 = "Hanging Lowerband"; string g_var_name_1000 = "Targeted Upperband"; string g_var_name_1008 = "Targeted Lowerband"; string g_var_name_1016 = "Start Time C1"; string gs_c1b_1024 = "C1B"; string gs_c1s_1032 = "C1S"; string g_var_name_1040 = "Start Point C1"; string g_var_name_1048 = "Lotsize C1"; string g_var_name_1056 = "Total Close C1"; string g_var_name_1064 = "Start Time C2"; string gs_c2b_1072 = "C2B"; string gs_c2s_1080 = "C2S"; string g_var_name_1088 = "Start Point C2"; string g_var_name_1096 = "Lotsize C2"; string g_var_name_1104 = "Total Close C2"; string g_var_name_1112 = "Start Time C3"; string gs_d3b_1120 = "D3B"; string gs_d3s_1128 = "D3S"; string g_var_name_1136 = "Start Point C3"; string g_var_name_1144 = "Lotsize C3"; string g_var_name_1152 = "Total Close C3"; string g_var_name_1160 = "Start Time C4"; string gs_d4b_1168 = "D4B"; string gs_d4s_1176 = "D4S"; string g_var_name_1184 = "Start Point C4"; string g_var_name_1192 = "Lotsize C4"; string g_var_name_1200 = "Total Close C4"; double gd_1208; double gd_1216; double gd_1224; double gd_1232; double gd_1240; double gd_1248; double gd_1256; double gd_1264; int g_global_var_1272 = 0; int g_global_var_1276 = 0; int g_global_var_1280 = 0; int g_global_var_1284 = 0; double g_global_var_1288; int gi_1296 = 0; int gi_1300 = 0; int gi_unused_1304 = 0; int gi_unused_1308 = 0; int gi_1312 = 0; int gi_1316 = 0; int gi_1320 = 0; int gi_1324 = 0; int gi_1328 = 0; int gi_1332 = 0; int gi_1336 = 0; string gs_1340; bool g_bool_1348; bool g_bool_1352; bool g_bool_1356; bool g_bool_1360; bool gi_1364 = TRUE; bool gi_1368 = TRUE; bool gi_1372 = TRUE; bool gi_1376 = TRUE; bool gi_1380 = TRUE; bool gi_1384 = TRUE; bool gi_1388 = TRUE; bool gi_1392 = TRUE; bool g_bool_1396 = FALSE; bool gi_1400 = TRUE; double g_iadx_1404; double g_iadx_1412; double gd_1420; double g_ima_1428; double gd_1436; double gd_1444; double gd_1452; double g_ima_1460; double gd_1468; double gd_1476; double g_imacd_1484; double g_imacd_1492; double g_imacd_1500; double g_imacd_1508; int gi_1516 = 2; int gi_unused_1520 = 0; double g_ima_1524; double g_ima_1532; double g_ima_1540; bool g_global_var_1548; bool g_global_var_1552; bool g_global_var_1556; bool g_global_var_1560; double gd_1564; int gi_1572 = 1; double gd_1576 = 0.0; double gd_1584 = 0.0; int g_datetime_1592; int gi_1596 = 0; int g_ord_total_1600 = 0; int hSession(bool ai_0) { string ls_4; if (gi_808 == 0) { ls_4 = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)"; gi_808 = InternetOpenA(ls_4, gi_816, "0", "0", 0); gi_812 = InternetOpenA(ls_4, gi_820, "0", "0", 0); } if (ai_0) return (gi_812); return (gi_808); } int GrabWeb(string as_0, string &as_8) { int l_file_40; int lia_24[] = {1}; string ls_28 = "x"; int li_16 = InternetOpenUrlA(hSession(0), as_0, "0", 0, -2080374528, 0); if (li_16 == 0) return (0); int li_20 = InternetReadFile(li_16, ls_28, gi_828, lia_24); if (li_20 == 0) return (0); int li_36 = lia_24[0]; for (as_8 = StringSubstr(ls_28, 0, lia_24[0]); lia_24[0] != 0; as_8 = as_8 + StringSubstr(ls_28, 0, lia_24[0])) { li_20 = InternetReadFile(li_16, ls_28, gi_828, lia_24); if (lia_24[0] == 0) break; li_36 += lia_24[0]; } li_20 = InternetCloseHandle(li_16); if (li_20 == 0) return (0); if (gi_804) { l_file_40 = FileOpen("Grabweb.htm", FILE_BIN|FILE_WRITE|FILE_READ); FileWriteString(l_file_40, as_8, StringLen(as_8)); FileClose(l_file_40); } return (1); } int validateAcc() { string ls_0; string ls_8; int li_16; if (IsDemo()) { gs_136 = "http://www.forexhope.com/demo/"; gs_144 = "http://www.switch-funds.com/demo/"; gs_152 = "http://www.dxc-server.com/demo/"; } else { gs_136 = "http://www.forexhope.com/onlineparam/"; gs_144 = "http://www.switch-funds.com/onlineparam/"; gs_152 = "http://www.dxc-server.com/onlineparam/"; } while (ls_8 != "1" && li_16 < gi_280) { ls_0 = gs_136 + gs_160 + "productID=" + gs_dts_176 + "&accNumber=" + AccountNumber(); GrabWeb(ls_0, gs_192); ls_8 = StringSubstr(gs_192, 0, 1); if (ls_8 != "1") { ls_0 = gs_144 + gs_160 + "productID=" + gs_dts_176 + "&accNumber=" + AccountNumber(); GrabWeb(ls_0, gs_192); ls_8 = StringSubstr(gs_192, 0, 1); if (ls_8 != "1") { ls_0 = gs_152 + gs_160 + "productID=" + gs_dts_176 + "&accNumber=" + AccountNumber(); GrabWeb(ls_0, gs_192); ls_8 = StringSubstr(gs_192, 0, 1); if (ls_8 != "1") Print("Authorization failed. Number of attempt:" + ((li_16 + 1)) + " of " + ((g_count_284 + 1))); } } gs_244 = StringSubstr(gs_192, 1); li_16++; } if (ls_8 == "1") return (1); return (0); } int CekTimeLimit() { if (TimeCurrent() > gi_132) { Alert(AccountNumber() + ":Time expired! The program will not open new cycle.\nContact the provider at http://www.ForexHope.com"); Print("Time Cur/Limit", TimeCurrent(), " | ", gi_132); return (0); } int li_0 = TimeDayOfYear(gi_132) - TimeDayOfYear(TimeCurrent()); if (li_0 < 0) li_0 += 365; return (1); } int CekCondition() { if (Digits == 4 || Digits == 2) gd_1564 = Point; else if (Digits == 5 || Digits == 3) gd_1564 = 10.0 * Point; bool l_bool_0 = IsTesting(); if (l_bool_0) { Alert(AccountNumber() + ":You can not use the program for back testing!"); return (0); } if (StringSubstr(Symbol(), 0, 6) != "EURUSD") { Alert(AccountNumber() + ":This EA only run on EURUSD."); return (0); } if (Period() != PERIOD_M30) { Alert(AccountNumber() + ":Please change to M30 Period."); return (0); } double l_lotsize_4 = MarketInfo(Symbol(), MODE_LOTSIZE); if (l_lotsize_4 == 100000.0) { g_bool_1396 = FALSE; if (MiniAccount) { Alert(AccountNumber() + ":Your Account is STANDARD ($100,000 contract per lot). Please set FALSE to Mini Account."); return (0); } } if (l_lotsize_4 == 10000.0) { g_bool_1396 = TRUE; if (!MiniAccount) { Alert(AccountNumber() + ":Your Account is MINI ($10,000 contract per lot). Please set TRUE to Mini Account."); return (0); } } if (Symbol() == "EURUSDm") g_bool_1396 = TRUE; if (iBars(Symbol(), PERIOD_D1) < 100) { Alert(AccountNumber() + ":Bar in PERIOD D1 less then 100 bars. Need minimum 100 bars."); return (0); } if (iBars(Symbol(), PERIOD_H4) < 100) { Alert(AccountNumber() + ":Bar in PERIOD H4 less then 100 bars. Need minimum 100 bars."); return (0); } if (SP_Distance < 50) { Alert(AccountNumber() + ":You can not set the SP Distance less then 50."); SP_Distance = 100; return (0); } return (1); } string DateToStr(int ai_0) { return (TimeMonth(ai_0) + "-" + TimeDay(ai_0) + "-" + TimeYear(ai_0)); } double MyAccountProfit(int a_magic_0) { int l_cmd_20; double ld_ret_12 = 0; int l_ord_total_8 = OrdersTotal(); if (l_ord_total_8 > 0) { for (int l_pos_4 = l_ord_total_8 - 1; l_pos_4 >= 0; l_pos_4--) { OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES); l_cmd_20 = OrderType(); if (OrderMagicNumber() == a_magic_0) if (l_cmd_20 == OP_BUY || l_cmd_20 == OP_SELL) ld_ret_12 += OrderProfit() + OrderSwap() + OrderCommission(); } return (ld_ret_12); } return (0); } double AddPyrProfit(int a_magic_0, int a_cmd_4, string as_8) { double ld_ret_24 = 0; int l_ord_total_20 = OrdersTotal(); if (l_ord_total_20 > 0) { for (int l_pos_16 = l_ord_total_20 - 1; l_pos_16 >= 0; l_pos_16--) { OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES); if (OrderType() == a_cmd_4 && OrderMagicNumber() == a_magic_0 && OrderComment() == as_8) ld_ret_24 += OrderProfit() + OrderSwap() + OrderCommission(); } return (ld_ret_24); } return (0); } double ClosedProfit(int a_magic_0, int ai_4) { double ld_ret_16 = 0; int l_hist_total_12 = OrdersHistoryTotal(); if (l_hist_total_12 > 0 && ai_4 > 0) { for (int l_pos_8 = l_hist_total_12 - 1; l_pos_8 >= 0; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_HISTORY); if (OrderMagicNumber() == a_magic_0) if (OrderOpenTime() >= ai_4) ld_ret_16 += OrderProfit() + OrderSwap() + OrderCommission(); } return (ld_ret_16); } return (0); } double Close1ZLProfit(int a_magic_0, color a_color_4, int a_slippage_8) { int l_cmd_24; bool l_ord_close_28; int l_ord_total_20 = OrdersTotal(); for (int l_pos_12 = l_ord_total_20 - 1; l_pos_12 >= 0; l_pos_12--) { OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES); l_cmd_24 = OrderType(); l_ord_close_28 = FALSE; switch (l_cmd_24) { case OP_BUY: if (OrderMagicNumber() == a_magic_0) l_ord_close_28 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), a_slippage_8, a_color_4); break; case OP_SELL: if (OrderMagicNumber() == a_magic_0) l_ord_close_28 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), a_slippage_8, a_color_4); } } return (0.0); } double CloseAddPyr(int a_magic_0, int a_cmd_4, string as_8, color a_color_16, int a_slippage_20) { int l_cmd_36; bool l_ord_close_40; int l_ord_total_32 = OrdersTotal(); for (int l_pos_24 = l_ord_total_32 - 1; l_pos_24 >= 0; l_pos_24--) { OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES); l_cmd_36 = OrderType(); l_ord_close_40 = FALSE; if (l_cmd_36 == a_cmd_4 && a_cmd_4 == OP_BUY && OrderComment() == as_8 && OrderMagicNumber() == a_magic_0) l_ord_close_40 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), a_slippage_20, a_color_16); if (l_cmd_36 == a_cmd_4 && a_cmd_4 == OP_SELL && OrderComment() == as_8 && OrderMagicNumber() == a_magic_0) l_ord_close_40 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), a_slippage_20, a_color_16); } return (0.0); } int MyOrdersTotal(int a_magic_0) { int l_cmd_16; int l_ord_total_8 = OrdersTotal(); int l_count_12 = 0; l_ord_total_8 = OrdersTotal(); if (l_ord_total_8 > 0) { for (int l_pos_4 = l_ord_total_8 - 1; l_pos_4 >= 0; l_pos_4--) { OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES); l_cmd_16 = OrderType(); if (l_cmd_16 == OP_BUY || l_cmd_16 == OP_SELL && OrderMagicNumber() == a_magic_0) l_count_12++; } } return (l_count_12); } int BSOrdersTotal(int a_magic_0, int ai_4) { int l_cmd_20; int l_ord_total_12 = OrdersTotal(); int l_count_16 = 0; l_ord_total_12 = OrdersTotal(); if (l_ord_total_12 > 0) { for (int l_pos_8 = l_ord_total_12 - 1; l_pos_8 >= 0; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); l_cmd_20 = OrderType(); if (l_cmd_20 == OP_BUY && ai_4 == 0 && OrderMagicNumber() == a_magic_0) l_count_16++; else if (l_cmd_20 == OP_SELL && ai_4 == 1 && OrderMagicNumber() == a_magic_0) l_count_16++; } } return (l_count_16); } int AddPyrOrders(int a_magic_0, int a_cmd_4, string as_8) { int l_ord_total_20 = OrdersTotal(); int l_count_24 = 0; l_ord_total_20 = OrdersTotal(); if (l_ord_total_20 > 0) { for (int l_pos_16 = l_ord_total_20 - 1; l_pos_16 >= 0; l_pos_16--) { OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES); if (OrderType() == a_cmd_4 && OrderMagicNumber() == a_magic_0 && OrderComment() == as_8) l_count_24++; } } return (l_count_24); } bool CheckZL(int a_magic_0, double ad_4) { if (a_magic_0 == g_magic_920) { if (MathAbs(ad_4 - gd_1216) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1224) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1232) >= SP_Distance * gd_1564 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1276)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1280)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1284)) > gi_892) return (TRUE); return (FALSE); } if (a_magic_0 == g_magic_924) { if (MathAbs(ad_4 - gd_1208) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1224) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1232) >= SP_Distance * gd_1564 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1272)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1280)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1284)) > gi_892) return (TRUE); return (FALSE); } if (a_magic_0 == g_magic_928) { if (MathAbs(ad_4 - gd_1208) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1216) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1232) >= SP_Distance * gd_1564 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1272)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1276)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1284)) > gi_892) return (TRUE); return (FALSE); } if (a_magic_0 == g_magic_932) { if (MathAbs(ad_4 - gd_1208) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1216) >= SP_Distance * gd_1564 && MathAbs(ad_4 - gd_1224) >= SP_Distance * gd_1564 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1272)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1276)) > gi_892 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1280)) > gi_892) return (TRUE); return (FALSE); } return (FALSE); } int IsNewTrade(int a_magic_0, int ai_4) { int l_cmd_20; int l_ord_total_12 = OrdersTotal(); bool li_ret_16 = TRUE; l_ord_total_12 = OrdersTotal(); if (l_ord_total_12 > 0) { for (int l_pos_8 = l_ord_total_12 - 1; l_pos_8 >= 0; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); l_cmd_20 = OrderType(); switch (l_cmd_20) { case OP_BUY: if (ai_4 == 0 && OrderMagicNumber() == a_magic_0 && OrderOpenPrice() == Ask) li_ret_16 = FALSE; case OP_SELL: if (ai_4 == 1 && OrderMagicNumber() == a_magic_0 && OrderOpenPrice() == Bid) li_ret_16 = FALSE; continue; } } } return (li_ret_16); } void CekRSI() { if (gi_1296 == 0 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 70.0 || gi_1296 == 2 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 70.0) { gi_1296 = 1; gi_1300 = 0; GlobalVariableSet(gs_rsib_952, gi_1296); GlobalVariableSet(gs_rsis_944, gi_1300); } else { if (gi_1296 == 1 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 70.0) { gi_1296 = 2; GlobalVariableSet(gs_rsib_952, gi_1296); } } if (gi_1300 == 0 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 30.0 || gi_1300 == 2 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 30.0) { gi_1300 = 1; gi_1296 = 0; GlobalVariableSet(gs_rsib_952, gi_1296); GlobalVariableSet(gs_rsis_944, gi_1300); return; } if (gi_1300 == 1 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 30.0) { gi_1300 = 2; GlobalVariableSet(gs_rsis_944, gi_1300); } } void CekRSI_H4() { if (gi_1312 == 0 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) > 70.0 || gi_1312 == 2 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) > 70.0) { gi_1312 = 1; gi_1316 = 0; GlobalVariableSet(gs_rsib_h4_968, gi_1312); GlobalVariableSet(gs_rsis_h4_960, gi_1316); } else { if (gi_1312 == 1 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) < 70.0) { gi_1312 = 2; GlobalVariableSet(gs_rsib_h4_968, gi_1312); } } if (gi_1316 == 0 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) < 30.0 || gi_1316 == 2 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) < 30.0) { gi_1316 = 1; gi_1312 = 0; GlobalVariableSet(gs_rsib_h4_968, gi_1312); GlobalVariableSet(gs_rsis_h4_960, gi_1316); return; } if (gi_1316 == 1 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 30.0) { gi_1316 = 2; GlobalVariableSet(gs_rsis_h4_960, gi_1316); } } int init() { g_datetime_208 = 0; g_str2int_316 = 1; g_str2int_320 = 1; g_str2int_324 = 0; g_str2int_328 = 0; g_str2int_340 = 0; g_str2int_344 = 0; g_str2int_332 = 0; g_str2int_336 = 0; g_str2int_352 = 0; g_str2int_356 = 0; g_str2int_364 = 0; g_str2int_368 = 0; g_str2int_372 = 0; g_str2int_376 = 0; g_str2int_380 = 0; g_str2int_384 = 0; g_str2int_348 = 0; g_str2int_360 = 0; gi_288 = TimeCurrent(); HideTestIndicators(TRUE); gi_1324 = GlobalVariableGet(g_var_name_1056); if (GetLastError() != 0/* NO_ERROR */) { gi_1324 = 0; GlobalVariableSet(g_var_name_1056, 0); } gi_1328 = GlobalVariableGet(g_var_name_1104); if (GetLastError() != 0/* NO_ERROR */) { gi_1328 = 0; GlobalVariableSet(g_var_name_1104, 0); } gi_1332 = GlobalVariableGet(g_var_name_1152); if (GetLastError() != 0/* NO_ERROR */) { gi_1332 = 0; GlobalVariableSet(g_var_name_1152, 0); } gi_1336 = GlobalVariableGet(g_var_name_1200); if (GetLastError() != 0/* NO_ERROR */) { gi_1336 = 0; GlobalVariableSet(g_var_name_1200, 0); } gi_1320 = GlobalVariableGet(g_var_name_976); if (GetLastError() != 0/* NO_ERROR */) { gi_1320 = 0; GlobalVariableSet(g_var_name_976, 0); } gd_1240 = GlobalVariableGet(g_var_name_1048); if (GetLastError() != 0/* NO_ERROR */) { gd_1240 = Lots_C1; GlobalVariableSet(g_var_name_1048, gd_1240); } gd_1248 = GlobalVariableGet(g_var_name_1096); if (GetLastError() != 0/* NO_ERROR */) { gd_1248 = Lots_C2; GlobalVariableSet(g_var_name_1096, gd_1248); } gd_1256 = GlobalVariableGet(g_var_name_1144); if (GetLastError() != 0/* NO_ERROR */) { gd_1256 = Lots_C3; GlobalVariableSet(g_var_name_1144, gd_1256); } gd_1264 = GlobalVariableGet(g_var_name_1192); if (GetLastError() != 0/* NO_ERROR */) { gd_1264 = Lots_C4; GlobalVariableSet(g_var_name_1192, gd_1264); } gd_1208 = GlobalVariableGet(g_var_name_1040); if (GetLastError() != 0/* NO_ERROR */) { gd_1208 = 0; GlobalVariableSet(g_var_name_1040, 0); } gd_1216 = GlobalVariableGet(g_var_name_1088); if (GetLastError() != 0/* NO_ERROR */) { gd_1216 = 0; GlobalVariableSet(g_var_name_1088, 0); } gd_1224 = GlobalVariableGet(g_var_name_1136); if (GetLastError() != 0/* NO_ERROR */) { gd_1224 = 0; GlobalVariableSet(g_var_name_1136, 0); } gd_1232 = GlobalVariableGet(g_var_name_1184); if (GetLastError() != 0/* NO_ERROR */) { gd_1232 = 0; GlobalVariableSet(g_var_name_1184, 0); } g_global_var_1272 = GlobalVariableGet(g_var_name_1016); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1272 = 0; GlobalVariableSet(g_var_name_1016, g_global_var_1272); } g_global_var_1276 = GlobalVariableGet(g_var_name_1064); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1276 = 0; GlobalVariableSet(g_var_name_1064, g_global_var_1276); } g_global_var_1280 = GlobalVariableGet(g_var_name_1112); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1280 = 0; GlobalVariableSet(g_var_name_1112, g_global_var_1280); } g_global_var_1284 = GlobalVariableGet(g_var_name_1160); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1284 = 0; GlobalVariableSet(g_var_name_1160, g_global_var_1284); } g_global_var_1288 = GlobalVariableGet(g_var_name_936); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1288 = AccountEquity(); GlobalVariableSet(g_var_name_936, g_global_var_1288); } gi_1300 = GlobalVariableGet(gs_rsis_944); if (GetLastError() != 0/* NO_ERROR */) { gi_1300 = 0; GlobalVariableSet(gs_rsis_944, gi_1300); } gi_1296 = GlobalVariableGet(gs_rsib_952); if (GetLastError() != 0/* NO_ERROR */) { gi_1296 = 0; GlobalVariableSet(gs_rsib_952, gi_1296); } gi_1316 = GlobalVariableGet(gs_rsis_h4_960); if (GetLastError() != 0/* NO_ERROR */) { gi_1316 = 0; GlobalVariableSet(gs_rsis_h4_960, gi_1316); } gi_1312 = GlobalVariableGet(gs_rsib_h4_968); if (GetLastError() != 0/* NO_ERROR */) { gi_1312 = 0; GlobalVariableSet(gs_rsib_h4_968, gi_1312); } g_global_var_1548 = GlobalVariableGet(g_var_name_984); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1548 = FALSE; GlobalVariableSet(g_var_name_984, g_global_var_1548); } g_global_var_1552 = GlobalVariableGet(g_var_name_992); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1552 = FALSE; GlobalVariableSet(g_var_name_992, g_global_var_1552); } g_global_var_1556 = GlobalVariableGet(g_var_name_1000); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1556 = FALSE; GlobalVariableSet(g_var_name_1000, g_global_var_1556); } g_global_var_1560 = GlobalVariableGet(g_var_name_1008); if (GetLastError() != 0/* NO_ERROR */) { g_global_var_1560 = FALSE; GlobalVariableSet(g_var_name_1008, g_global_var_1560); } return (0); } int deinit() { return (0); } int DoPyramiding(int a_magic_0) { double ld_4; double l_lots_12; string l_comment_20; string l_comment_28; string ls_unused_40; double ld_48; double ld_56; double ld_64; double ld_72; int l_ticket_80; int l_error_84; g_global_var_1288 = GlobalVariableGet(g_var_name_936); if (a_magic_0 == g_magic_920) { ld_4 = gd_1208; l_lots_12 = gd_1240; l_comment_20 = gs_c1b_1024 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1056) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; l_comment_28 = gs_c1s_1032 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1056) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; } else { if (a_magic_0 == g_magic_924) { ld_4 = gd_1216; l_lots_12 = gd_1248; l_comment_20 = gs_c2b_1072 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1104) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; l_comment_28 = gs_c2s_1080 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1104) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; } else { if (a_magic_0 == g_magic_928) { ld_4 = gd_1224; l_lots_12 = gd_1256; l_comment_20 = gs_d3b_1120 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1152) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; l_comment_28 = gs_d3s_1128 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1152) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; } else { if (a_magic_0 == g_magic_932) { ld_4 = gd_1232; l_lots_12 = gd_1264; l_comment_20 = gs_d4b_1168 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1200) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; l_comment_28 = gs_d4s_1176 + " (" + DoubleToStr(GlobalVariableGet(g_var_name_1200) + 1.0, 0) + "/" + DoubleToStr(g_global_var_1288, 2) + "/" + AccountNumber() + ")"; } } } } if (gd_768 == 0.0) ld_48 = 0; else ld_48 = gd_768; if (gd_784 == 0.0) ld_56 = 0; else ld_56 = gd_784; if (gd_776 == 0.0) ld_64 = 100; else ld_64 = gd_776; if (gd_792 == 0.0) ld_72 = 100; else ld_72 = gd_792; if (IsNewTrade(a_magic_0, 1) && Bid < ld_4 && MathMod(Bid / gd_1564, gi_876) == 0.0 && Bid < ld_72 && Bid > ld_56 && g_str2int_316 == 1 && Enable_C_Sell) { l_ticket_80 = OrderSend(Symbol(), OP_SELL, l_lots_12, Bid, g_slippage_916, 0, 0, l_comment_28, a_magic_0, 0, Red); l_error_84 = GetLastError(); if (l_error_84 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size:" + l_lots_12 + " - please override with correct setting"); return (l_error_84); } if (IsNewTrade(a_magic_0, 0) && Ask > ld_4 && MathMod(Ask / gd_1564, gi_876) == 0.0 && Ask > ld_48 && Ask < ld_64 && g_str2int_320 == 1 && Enable_C_Buy) { l_ticket_80 = OrderSend(Symbol(), OP_BUY, l_lots_12, Ask, g_slippage_916, 0, 0, l_comment_20, a_magic_0, 0, Green); l_error_84 = GetLastError(); if (l_error_84 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size:" + l_lots_12 + " - please override with correct setting"); return (l_error_84); } return (0); } void Do_BRT_Pyramiding(int a_magic_0) { string ls_4; string l_comment_12; string l_comment_20; double ld_28; double l_lots_36; int l_ord_total_44; int l_cmd_52; int l_ord_close_56; int l_ticket_60; int l_error_64; if (a_magic_0 == g_magic_920) { ld_28 = gd_1208; l_lots_36 = gd_1240 * Multiply_Lot_BRT; ls_4 = "CYCLE-C1"; l_comment_12 = gs_c1b_1024 + "ADD-BRT"; l_comment_20 = gs_c1s_1032 + "ADD-BRT"; } else { if (a_magic_0 == g_magic_924) { ld_28 = gd_1216; l_lots_36 = gd_1248 * Multiply_Lot_BRT; ls_4 = "CYCLE-C2"; l_comment_12 = gs_c2b_1072 + "ADD-BRT"; l_comment_20 = gs_c2s_1080 + "ADD-BRT"; } else { if (a_magic_0 == g_magic_928) { ld_28 = gd_1224; l_lots_36 = gd_1256 * Multiply_Lot_BRT; ls_4 = "CYCLE-C3"; l_comment_12 = gs_d3b_1120 + "ADD-BRT"; l_comment_20 = gs_d3s_1128 + "ADD-BRT"; } else { if (a_magic_0 == g_magic_932) { ld_28 = gd_1232; l_lots_36 = gd_1264 * Multiply_Lot_BRT; ls_4 = "CYCLE-C4"; l_comment_12 = gs_d4b_1168 + "ADD-BRT"; l_comment_20 = gs_d4s_1176 + "ADD-BRT"; } } } } if (g_ima_1524 > g_ima_1532 && iHigh(NULL, PERIOD_D1, 1) > gd_1476 && iLow(NULL, PERIOD_D1, 1) < gd_1476) { g_global_var_1548 = TRUE; GlobalVariableSet(g_var_name_984, g_global_var_1548); g_global_var_1552 = FALSE; GlobalVariableSet(g_var_name_992, g_global_var_1552); g_global_var_1556 = FALSE; GlobalVariableSet(g_var_name_1000, g_global_var_1556); g_global_var_1560 = FALSE; GlobalVariableSet(g_var_name_1008, g_global_var_1560); } else { if (g_ima_1524 < g_ima_1532 && iHigh(NULL, PERIOD_D1, 1) > gd_1468 && iLow(NULL, PERIOD_D1, 1) < gd_1468) { g_global_var_1552 = TRUE; GlobalVariableSet(g_var_name_992, g_global_var_1552); g_global_var_1548 = FALSE; GlobalVariableSet(g_var_name_984, g_global_var_1548); g_global_var_1556 = FALSE; GlobalVariableSet(g_var_name_1000, g_global_var_1556); g_global_var_1560 = FALSE; GlobalVariableSet(g_var_name_1008, g_global_var_1560); } } if (g_global_var_1548 && iClose(NULL, PERIOD_D1, 1) < g_ima_1460 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 50.0) { g_global_var_1560 = TRUE; GlobalVariableSet(g_var_name_1008, g_global_var_1560); g_global_var_1556 = FALSE; GlobalVariableSet(g_var_name_1000, g_global_var_1556); } else { if (g_global_var_1552 && iClose(NULL, PERIOD_D1, 1) > g_ima_1460 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 50.0) { g_global_var_1556 = TRUE; GlobalVariableSet(g_var_name_1000, g_global_var_1556); g_global_var_1560 = FALSE; GlobalVariableSet(g_var_name_1008, g_global_var_1560); } } if (g_global_var_1556 && iClose(NULL, 0, 0) > gd_1476) { gs_1340 = "MSP ADD-BREAKTHROUGH (UPTREND): CLOSE BUY ORDER FOR " + ls_4 + " | " + DateToStr(TimeCurrent()); l_ord_total_44 = OrdersTotal(); for (int l_pos_48 = l_ord_total_44 - 1; l_pos_48 >= 0; l_pos_48--) { OrderSelect(l_pos_48, SELECT_BY_POS); l_cmd_52 = OrderType(); if (l_cmd_52 == OP_BUY && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > 0.0 && OrderComment() == l_comment_12) l_ord_close_56 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, LightGreen); } } else { if (g_global_var_1560 && iClose(NULL, 0, 0) < gd_1468) { gs_1340 = "MSP ADD-BREAKTHROUGH (DNTREND): CLOSE SELL ORDER FOR " + ls_4 + " | " + DateToStr(TimeCurrent()); l_ord_total_44 = OrdersTotal(); for (l_pos_48 = l_ord_total_44 - 1; l_pos_48 >= 0; l_pos_48--) { OrderSelect(l_pos_48, SELECT_BY_POS); l_cmd_52 = OrderType(); if (l_cmd_52 == OP_SELL && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > 0.0 && OrderComment() == l_comment_20) l_ord_close_56 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, LightGreen); } } } if (MyOrdersTotal(a_magic_0) > Pos_Open_BRT) { if (g_global_var_1560 && iClose(NULL, 0, 0) < g_ima_1460 && iClose(NULL, 0, 0) < g_ima_1524) { gs_1340 = "MSP ADD-BREAKTHROUGH (DNTREND): CLOSE ALL-BUY AT MIDLE-BAND FOR " + ls_4 + " | " + DateToStr(TimeCurrent()); if (iClose(NULL, 0, 0) > ld_28) ld_28 = iClose(NULL, 0, 0); l_ord_total_44 = OrdersTotal(); for (l_pos_48 = l_ord_total_44 - 1; l_pos_48 >= 0; l_pos_48--) { OrderSelect(l_pos_48, SELECT_BY_POS); l_cmd_52 = OrderType(); if (l_cmd_52 == OP_BUY && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > gd_860) l_ord_close_56 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, LightGreen); } } else { if (g_global_var_1556 && iClose(NULL, 0, 0) > g_ima_1460 && iClose(NULL, 0, 0) > g_ima_1524) { gs_1340 = "MSP ADD-BREAKTHROUGH (UPTREND): CLOSE ALL-SELL AT MIDLE-BAND FOR " + ls_4 + " | " + DateToStr(TimeCurrent()); if (iClose(NULL, 0, 0) < ld_28) ld_28 = iClose(NULL, 0, 0); l_ord_total_44 = OrdersTotal(); for (l_pos_48 = l_ord_total_44 - 1; l_pos_48 >= 0; l_pos_48--) { OrderSelect(l_pos_48, SELECT_BY_POS); l_cmd_52 = OrderType(); if (l_cmd_52 == OP_SELL && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > gd_860) l_ord_close_56 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, LightGreen); } } } if (Bid < ld_28 && IsNewTrade(a_magic_0, 1) && MathMod(Bid / gd_1564, Pos_Distance_BRT) == 0.0 && AddPyrOrders(a_magic_0, OP_SELL, l_comment_20) < Max_Open_BRT && g_str2int_324 == 1) { if (l_lots_36 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_60 = OrderSend(Symbol(), OP_SELL, l_lots_36, Bid, g_slippage_916, 0, 0, l_comment_20, a_magic_0, 0, Pink); l_error_64 = GetLastError(); if (l_error_64 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); } } else { if (Ask > ld_28 && IsNewTrade(a_magic_0, 0) && MathMod(Ask / gd_1564, Pos_Distance_BRT) == 0.0 && AddPyrOrders(a_magic_0, OP_BUY, l_comment_12) < Max_Open_BRT && g_str2int_328 == 1) { if (l_lots_36 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_60 = OrderSend(Symbol(), OP_BUY, l_lots_36, Ask, g_slippage_916, 0, 0, l_comment_12, a_magic_0, 0, LawnGreen); l_error_64 = GetLastError(); if (l_error_64 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); } } } } } int Do_INV_Pyramiding(int a_magic_0) { double ld_unused_4; double l_lots_12; string l_comment_20; string l_comment_28; string ls_36; int l_ord_total_48; int l_cmd_56; int l_ord_close_60; double ld_64; int l_ticket_72; int l_error_76; if (a_magic_0 == g_magic_920) { l_lots_12 = gd_1240 * Multiply_Lot_INV; ld_unused_4 = gd_1208; ls_36 = "CYCLE-C1"; l_comment_20 = gs_c1b_1024 + "ADD-INV"; l_comment_28 = gs_c1s_1032 + "ADD-INV"; } else { if (a_magic_0 == g_magic_924) { l_lots_12 = gd_1248 * Multiply_Lot_INV; ld_unused_4 = gd_1216; ls_36 = "CYCLE-C2"; l_comment_20 = gs_c2b_1072 + "ADD-INV"; l_comment_28 = gs_c2s_1080 + "ADD-INV"; } else { if (a_magic_0 == g_magic_928) { l_lots_12 = gd_1256 * Multiply_Lot_INV; ld_unused_4 = gd_1224; ls_36 = "CYCLE-C3"; l_comment_20 = gs_d3b_1120 + "ADD-INV"; l_comment_28 = gs_d3s_1128 + "ADD-INV"; } else { if (a_magic_0 == g_magic_932) { l_lots_12 = gd_1264 * Multiply_Lot_INV; ld_unused_4 = gd_1232; ls_36 = "CYCLE-C4"; l_comment_20 = gs_d4b_1168 + "ADD-INV"; l_comment_28 = gs_d4s_1176 + "ADD-INV"; } } } } if (iClose(NULL, 0, 0) >= gd_1476 || (iClose(NULL, 0, 0) - g_ima_1460) / gd_1564 >= gi_800) { gs_1340 = "MSP ADD-INVERTED (UPTREND): CLOSE BUY ORDER FOR " + ls_36 + " | " + DateToStr(TimeCurrent()); l_ord_total_48 = OrdersTotal(); for (int l_pos_52 = l_ord_total_48 - 1; l_pos_52 >= 0; l_pos_52--) { OrderSelect(l_pos_52, SELECT_BY_POS); l_cmd_56 = OrderType(); if (l_cmd_56 == OP_BUY && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > 0.0 && OrderComment() == l_comment_20) l_ord_close_60 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, LightGreen); } } else { if (iClose(NULL, 0, 0) <= gd_1468 || (g_ima_1460 - iClose(NULL, 0, 0)) / gd_1564 >= gi_800) { gs_1340 = "MSP ADD-INVERTED (DNTREND): CLOSE SELL ORDER FOR " + ls_36 + " | " + DateToStr(TimeCurrent()); l_ord_total_48 = OrdersTotal(); for (l_pos_52 = l_ord_total_48 - 1; l_pos_52 >= 0; l_pos_52--) { OrderSelect(l_pos_52, SELECT_BY_POS); l_cmd_56 = OrderType(); if (l_cmd_56 == OP_SELL && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > 0.0 && OrderComment() == l_comment_28) l_ord_close_60 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, LightGreen); } } } if (g_str2int_348 == 1) { if (!g_bool_1396) ld_64 = l_lots_12 * gi_840; else ld_64 = l_lots_12 / 10.0 * gi_840; if (AddPyrProfit(a_magic_0, OP_SELL, l_comment_28) > ld_64) CloseAddPyr(a_magic_0, OP_SELL, l_comment_28, Purple, g_slippage_916); if (AddPyrProfit(a_magic_0, OP_BUY, l_comment_20) > ld_64) CloseAddPyr(a_magic_0, OP_BUY, l_comment_20, Navy, g_slippage_916); } if (MyOrdersTotal(a_magic_0) > Pos_Open_INV) { if (IsNewTrade(a_magic_0, 1) && MathMod(Bid / gd_1564, Pos_Distance_INV) == 0.0 && AddPyrOrders(a_magic_0, OP_SELL, l_comment_28) < Max_Open_INV && g_str2int_340 == 1) { if (l_lots_12 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_72 = OrderSend(Symbol(), OP_SELL, l_lots_12, Bid, g_slippage_916, 0, Bid - Profit_Target_INV * gd_1564, l_comment_28, a_magic_0, 0, Purple); l_error_76 = GetLastError(); if (l_error_76 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_76); } } if (IsNewTrade(a_magic_0, 0) && MathMod(Ask / gd_1564, Pos_Distance_INV) == 0.0 && AddPyrOrders(a_magic_0, OP_BUY, l_comment_20) < Max_Open_INV && g_str2int_344 == 1) { if (l_lots_12 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_72 = OrderSend(Symbol(), OP_BUY, l_lots_12, Ask, g_slippage_916, 0, Ask + Profit_Target_INV * gd_1564, l_comment_20, a_magic_0, 0, Navy); l_error_76 = GetLastError(); if (l_error_76 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_76); } } } return (0); } int Do_REV_Pyramiding(int a_magic_0) { double l_lots_4; double ld_unused_12; string l_comment_20; string l_comment_28; string ls_unused_40; int l_ticket_48; int l_error_52; g_global_var_1288 = GlobalVariableGet(g_var_name_936); if (a_magic_0 == g_magic_920) { l_lots_4 = gd_1240 * Multiply_Lot_REV; ld_unused_12 = gd_1208; l_comment_20 = gs_c1b_1024 + "ADD-REV"; l_comment_28 = gs_c1s_1032 + "ADD-REV"; } else { if (a_magic_0 == g_magic_924) { l_lots_4 = gd_1248 * Multiply_Lot_REV; ld_unused_12 = gd_1216; l_comment_20 = gs_c2b_1072 + "ADD-REV"; l_comment_28 = gs_c2s_1080 + "ADD-REV"; } else { if (a_magic_0 == g_magic_928) { l_lots_4 = gd_1256 * Multiply_Lot_REV; ld_unused_12 = gd_1224; l_comment_20 = gs_d3b_1120 + "ADD-REV"; l_comment_28 = gs_d3s_1128 + "ADD-REV"; } else { if (a_magic_0 == g_magic_932) { l_lots_4 = gd_1264 * Multiply_Lot_REV; ld_unused_12 = gd_1232; l_comment_20 = gs_d4b_1168 + "ADD-REV"; l_comment_28 = gs_d4s_1176 + "ADD-REV"; } } } } if (MyOrdersTotal(a_magic_0) > Pos_Open_REV) { if (IsNewTrade(a_magic_0, 1) && MathMod(Bid / gd_1564, Pos_Distance_REV) == 0.0 && AddPyrOrders(a_magic_0, OP_SELL, l_comment_28) < Max_Open_REV && g_str2int_332 == 1) { if (l_lots_4 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_48 = OrderSend(Symbol(), OP_SELL, l_lots_4, Bid, g_slippage_916, 0, Bid - Profit_Target_REV * gd_1564, l_comment_28, a_magic_0, 0, Fuchsia); l_error_52 = GetLastError(); if (l_error_52 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_52); } } if (IsNewTrade(a_magic_0, 0) && MathMod(Ask / gd_1564, Pos_Distance_REV) == 0.0 && AddPyrOrders(a_magic_0, OP_BUY, l_comment_20) < Max_Open_REV && g_str2int_336 == 1) { if (l_lots_4 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_48 = OrderSend(Symbol(), OP_BUY, l_lots_4, Ask, g_slippage_916, 0, Ask + Profit_Target_REV * gd_1564, l_comment_20, a_magic_0, 0, RoyalBlue); l_error_52 = GetLastError(); if (l_error_52 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_52); } } } return (0); } int Do_SCA_Pyramiding(int a_magic_0) { double l_lots_4; double ld_unused_12; string l_comment_20; string l_comment_28; string ls_unused_40; double ld_48; int l_ticket_56; int l_error_60; g_global_var_1288 = GlobalVariableGet(g_var_name_936); if (a_magic_0 == g_magic_920) { l_lots_4 = gd_1240 * Multiply_Lot_SCA; ld_unused_12 = gd_1208; l_comment_20 = gs_c1b_1024 + "ADD-SCA"; l_comment_28 = gs_c1s_1032 + "ADD-SCA"; } else { if (a_magic_0 == g_magic_924) { l_lots_4 = gd_1248 * Multiply_Lot_SCA; ld_unused_12 = gd_1216; l_comment_20 = gs_c2b_1072 + "ADD-SCA"; l_comment_28 = gs_c2s_1080 + "ADD-SCA"; } else { if (a_magic_0 == g_magic_928) { l_lots_4 = gd_1256 * Multiply_Lot_SCA; ld_unused_12 = gd_1224; l_comment_20 = gs_d3b_1120 + "ADD-SCA"; l_comment_28 = gs_d3s_1128 + "ADD-SCA"; } else { if (a_magic_0 == g_magic_932) { l_lots_4 = gd_1264 * Multiply_Lot_SCA; ld_unused_12 = gd_1232; l_comment_20 = gs_d4b_1168 + "ADD-SCA"; l_comment_28 = gs_d4s_1176 + "ADD-SCA"; } } } } if (g_str2int_360 == 1) { if (!g_bool_1396) ld_48 = l_lots_4 * gi_840; else ld_48 = l_lots_4 / 10.0 * gi_840; if (AddPyrProfit(a_magic_0, OP_SELL, l_comment_28) > ld_48) CloseAddPyr(a_magic_0, OP_SELL, l_comment_28, LightSalmon, g_slippage_916); if (AddPyrProfit(a_magic_0, OP_BUY, l_comment_20) > ld_48) CloseAddPyr(a_magic_0, OP_BUY, l_comment_20, LightBlue, g_slippage_916); } if (MyOrdersTotal(a_magic_0) > Pos_Open_SCA) { if (IsNewTrade(a_magic_0, 1) && MathMod(Bid / gd_1564, Pos_Distance_SCA) == 0.0 && AddPyrOrders(a_magic_0, OP_SELL, l_comment_28) < Max_Open_SCA && g_str2int_352 == 1) { if (l_lots_4 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_56 = OrderSend(Symbol(), OP_SELL, l_lots_4, Bid, g_slippage_916, 0, Bid - Profit_Target_SCA * gd_1564, l_comment_28, a_magic_0, 0, LightSalmon); l_error_60 = GetLastError(); if (l_error_60 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_60); } } if (IsNewTrade(a_magic_0, 0) && MathMod(Ask / gd_1564, Pos_Distance_SCA) == 0.0 && AddPyrOrders(a_magic_0, OP_BUY, l_comment_20) < Max_Open_SCA && g_str2int_356 == 1) { if (l_lots_4 > 0.0 && MarketInfo(Symbol(), MODE_SPREAD) <= MaxSpread_Allowed) { l_ticket_56 = OrderSend(Symbol(), OP_BUY, l_lots_4, Ask, g_slippage_916, 0, Ask + Profit_Target_SCA * gd_1564, l_comment_20, a_magic_0, 0, LightBlue); l_error_60 = GetLastError(); if (l_error_60 == 131/* INVALID_TRADE_VOLUME */) Print("Unable to trade as invalid lot size - please override with correct setting"); return (l_error_60); } } } return (0); } void MovingZeroLine(int a_magic_0) { int l_cmd_4; bool l_ord_close_8; int l_ord_total_16; double ld_20; double ld_36; string ls_44; string ls_52; string ls_unused_60; double ld_68; if (a_magic_0 == g_magic_920) { ld_20 = gd_1208; ld_36 = gd_1240; ls_44 = "CYCLE-C1"; ls_52 = gs_c1b_1024; ls_unused_60 = gs_c1s_1032; } else { if (a_magic_0 == g_magic_924) { ld_20 = gd_1216; ld_36 = gd_1248; ls_44 = "CYCLE-C2"; ls_52 = gs_c2b_1072; ls_unused_60 = gs_c2s_1080; } else { if (a_magic_0 == g_magic_928) { ld_20 = gd_1224; ld_36 = gd_1256; ls_44 = "CYCLE-C3"; ls_52 = gs_d3b_1120; ls_unused_60 = gs_d3s_1128; } else { if (a_magic_0 == g_magic_932) { ld_20 = gd_1232; ld_36 = gd_1264; ls_44 = "CYCLE-C4"; ls_52 = gs_d4b_1168; ls_unused_60 = gs_d4s_1176; } } } } double ld_28 = 0; if (!g_bool_1396) { gd_844 = ld_36 * gi_840; gd_860 = 0.3 * gd_844; } else { gd_844 = ld_36 / 10.0 * gi_840; gd_860 = 0.3 * gd_844; } if ((g_ima_1524 < g_ima_1532 && iClose(NULL, PERIOD_D1, 0) <= g_ima_1524 && iClose(NULL, PERIOD_D1, 0) <= g_ima_1540 && g_imacd_1492 > g_imacd_1484 && iMA(NULL, PERIOD_H4, 9, 0, MODE_SMA, PRICE_CLOSE, 0) < iMA(NULL, PERIOD_H4, 9, 0, MODE_SMA, PRICE_CLOSE, 1) && g_str2int_364 == 1) || (g_ima_1524 < g_ima_1532 && iClose(NULL, PERIOD_D1, 0) < g_ima_1532 && iClose(NULL, PERIOD_D1, 1) > g_ima_1524 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 50.0 && gi_1312 == 2 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) < 45.0 && g_str2int_364 == 1) || (g_ima_1524 > g_ima_1532 && gi_1296 == 2 && iClose(NULL, PERIOD_D1, 1) < g_ima_1524 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) < 45.0 && g_str2int_368 == 1) || (g_ima_1524 > g_ima_1532 && iHigh(NULL, PERIOD_D1, 1) > gd_1476 && iLow(NULL, PERIOD_D1, 1) < gd_1476 && iClose(NULL, PERIOD_D1, 2) > iOpen(NULL, PERIOD_D1, 2) && iClose(NULL, PERIOD_D1, 1) < iOpen(NULL, PERIOD_D1, 1) && iClose(NULL, PERIOD_D1, 1) < iMA(NULL, PERIOD_D1, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 1) && iClose(NULL, 0, 0) < iHigh(NULL, PERIOD_D1, 1) && g_str2int_368 == 1) || (g_ima_1524 > g_ima_1532 && iHigh(NULL, PERIOD_D1, 2) > gd_1476 && iLow(NULL, PERIOD_D1, 2) < gd_1476 && iClose(NULL, PERIOD_D1, 3) > iOpen(NULL, PERIOD_D1, 3) && iClose(NULL, PERIOD_D1, 2) < iOpen(NULL, PERIOD_D1, 2) && iClose(NULL, PERIOD_D1, 1) < iOpen(NULL, PERIOD_D1, 1) && iClose(NULL, PERIOD_D1, 1) < iMA(NULL, PERIOD_D1, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 1) && iClose(NULL, 0, 0) < iHigh(NULL, PERIOD_D1, 1) && g_str2int_368 == 1) || g_str2int_372) { gs_1340 = "MSP ABOVE (DOWNTREND): TREND BEARISH FOR " + ls_44 + " | " + DateToStr(TimeCurrent()) + " | OPEN ORDER (BUY:SELL)= " + BSOrdersTotal(a_magic_0, 0) + ":" + BSOrdersTotal(a_magic_0, 1); if (g_str2int_380 == 0 && iClose(NULL, 0, 0) > ld_20) { ld_20 = iClose(NULL, 0, 0); gi_1296 = 0; gi_1312 = 0; GlobalVariableSet(gs_rsib_952, gi_1296); } l_ord_total_16 = OrdersTotal(); for (int l_pos_12 = l_ord_total_16 - 1; l_pos_12 >= 0; l_pos_12--) { OrderSelect(l_pos_12, SELECT_BY_POS); l_cmd_4 = OrderType(); if (g_str2int_380 == 1) { if (l_cmd_4 == OP_BUY && OrderMagicNumber() == a_magic_0 && OrderComment() == ls_52 + "ADD-BRT" || OrderComment() == ls_52 + "ADD-INV" || OrderComment() == ls_52 + "ADD-REV" || OrderComment() == ls_52 + "ADD-SCA") { if (g_str2int_384 == 1) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Red); if (l_ord_close_8) ld_28 += ld_68; } else { if (OrderProfit() + OrderSwap() + OrderCommission() > 0.0) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Yellow); if (l_ord_close_8) ld_28 += ld_68; } } } } else { if (l_cmd_4 == OP_BUY && OrderMagicNumber() == a_magic_0) { if (OrderProfit() + OrderSwap() + OrderCommission() > gd_860) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Yellow); if (l_ord_close_8) ld_28 += ld_68; } } } } } if ((g_ima_1524 > g_ima_1532 && iClose(NULL, PERIOD_D1, 0) >= g_ima_1524 && iClose(NULL, PERIOD_D1, 0) >= g_ima_1540 && g_imacd_1492 < g_imacd_1484 && iMA(NULL, PERIOD_H4, 9, 0, MODE_SMA, PRICE_CLOSE, 0) > iMA(NULL, PERIOD_H4, 9, 0, MODE_SMA, PRICE_CLOSE, 1) && g_str2int_364 == 1) || (g_ima_1524 > g_ima_1532 && iClose(NULL, PERIOD_D1, 0) > g_ima_1532 && iClose(NULL, PERIOD_D1, 0) < g_ima_1524 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 50.0 && gi_1316 == 2 && iRSI(NULL, PERIOD_H4, g_period_896, PRICE_CLOSE, 0) > 55.0 && g_str2int_364 == 1) || (g_ima_1524 < g_ima_1532 && gi_1300 == 2 && iClose(NULL, PERIOD_D1, 1) > g_ima_1524 && iRSI(NULL, PERIOD_D1, g_period_896, PRICE_CLOSE, 0) > 55.0 && g_str2int_368 == 1) || (g_ima_1524 < g_ima_1532 && iLow(NULL, PERIOD_D1, 1) < gd_1468 && iHigh(NULL, PERIOD_D1, 1) > gd_1468 && iClose(NULL, PERIOD_D1, 2) < iOpen(NULL, PERIOD_D1, 2) && iClose(NULL, PERIOD_D1, 1) > iOpen(NULL, PERIOD_D1, 1) && iClose(NULL, PERIOD_D1, 1) > iMA(NULL, PERIOD_D1, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 1) && iClose(NULL, 0, 0) > iLow(NULL, PERIOD_D1, 1) && g_str2int_368 == 1) || (g_ima_1524 < g_ima_1532 && iLow(NULL, PERIOD_D1, 2) < gd_1468 && iHigh(NULL, PERIOD_D1, 2) > gd_1468 && iClose(NULL, PERIOD_D1, 3) < iOpen(NULL, PERIOD_D1, 3) && iClose(NULL, PERIOD_D1, 2) > iOpen(NULL, PERIOD_D1, 2) && iClose(NULL, PERIOD_D1, 1) > iOpen(NULL, PERIOD_D1, 1) && iClose(NULL, PERIOD_D1, 1) > iMA(NULL, PERIOD_D1, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 1) && iClose(NULL, 0, 0) > iLow(NULL, PERIOD_D1, 1) && g_str2int_368 == 1) || g_str2int_376) { gs_1340 = "MSP BELOW (UPTREND): TREND BULLISH FOR " + ls_44 + " | " + DateToStr(TimeCurrent()) + " | OPEN ORDER (BUY:SELL)= " + BSOrdersTotal(a_magic_0, 0) + ":" + BSOrdersTotal(a_magic_0, 1); if (g_str2int_380 == 0 && iClose(NULL, 0, 0) < ld_20) { ld_20 = iClose(NULL, 0, 0); gi_1300 = 0; gi_1316 = 0; GlobalVariableSet(gs_rsis_944, gi_1300); } l_ord_total_16 = OrdersTotal(); for (l_pos_12 = l_ord_total_16 - 1; l_pos_12 >= 0; l_pos_12--) { OrderSelect(l_pos_12, SELECT_BY_POS); l_cmd_4 = OrderType(); if (g_str2int_380 == 1) { if (l_cmd_4 == OP_SELL && OrderMagicNumber() == a_magic_0 && OrderComment() == ls_52 + "ADD-BRT" || OrderComment() == ls_52 + "ADD-INV" || OrderComment() == ls_52 + "ADD-REV" || OrderComment() == ls_52 + "ADD-SCA") { if (g_str2int_384 == 1) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Red); if (l_ord_close_8) ld_28 += ld_68; } else { if (OrderProfit() + OrderSwap() + OrderCommission() > 0.0) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Yellow); if (l_ord_close_8) ld_28 += ld_68; } } } } else { if (l_cmd_4 == OP_SELL && OrderMagicNumber() == a_magic_0 && OrderProfit() + OrderSwap() + OrderCommission() > gd_860) { ld_68 = OrderProfit() + OrderSwap() + OrderCommission(); l_ord_close_8 = FALSE; l_ord_close_8 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Yellow); if (l_ord_close_8) ld_28 += ld_68; } } } } if (a_magic_0 == g_magic_920) { gd_1208 = ld_20; GlobalVariableSet(g_var_name_1040, gd_1208); return; } if (a_magic_0 == g_magic_924) { gd_1216 = ld_20; GlobalVariableSet(g_var_name_1088, gd_1216); return; } if (a_magic_0 == g_magic_928) { gd_1224 = ld_20; GlobalVariableSet(g_var_name_1136, gd_1224); return; } if (a_magic_0 == g_magic_932) { gd_1232 = ld_20; GlobalVariableSet(g_var_name_1184, gd_1232); } } void ForceMSPAbove(int ai_0) { int l_cmd_4; int l_magic_8; int l_ord_close_12; double ld_32; double ld_unused_48; string ls_56; string ls_64; string ls_72; double ld_80; double ld_88; if (ai_0 == 1) { ld_32 = gd_1208; ld_unused_48 = gd_1240; l_magic_8 = g_magic_920; ls_56 = "CYCLE-C1"; ls_64 = gs_c1b_1024; ls_72 = gs_c1s_1032; } else { if (ai_0 == 2) { ld_32 = gd_1216; ld_unused_48 = gd_1248; l_magic_8 = g_magic_924; ls_56 = "CYCLE-C2"; ls_64 = gs_c2b_1072; ls_72 = gs_c2s_1080; } else { if (ai_0 == 3) { ld_32 = gd_1224; ld_unused_48 = gd_1256; l_magic_8 = g_magic_928; ls_56 = "CYCLE-C3"; ls_64 = gs_d3b_1120; ls_72 = gs_d3s_1128; } else { if (ai_0 == 4) { ld_32 = gd_1232; ld_unused_48 = gd_1264; l_magic_8 = g_magic_932; ls_56 = "CYCLE-C4"; ls_64 = gs_d4b_1168; ls_72 = gs_d4s_1176; } } } } double ld_unused_40 = 0; if (Force_MSP_BottomPrice >= 0.0) ld_88 = Force_MSP_BottomPrice; else ld_88 = 0; if (Force_MSP_TopPrice > 0.0) ld_80 = Force_MSP_TopPrice; else ld_80 = 100; if (Move_SP && iClose(NULL, 0, 0) > ld_32) { ld_32 = iClose(NULL, 0, 0); gi_1296 = 0; GlobalVariableSet(gs_rsib_952, gi_1296); } int l_ord_total_20 = OrdersTotal(); for (int l_pos_16 = l_ord_total_20 - 1; l_pos_16 >= 0; l_pos_16--) { OrderSelect(l_pos_16, SELECT_BY_POS); l_cmd_4 = OrderType(); if (Force_MSP_ADDCYCLE_Only) { if (l_cmd_4 == OP_BUY && OrderComment() == ls_64 + "ADD-BRT" || OrderComment() == ls_64 + "ADD-INV" || OrderComment() == ls_64 + "ADD-REV" || OrderComment() == ls_64 + "ADD-SCA" && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Above => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Orange); } } else { if (l_cmd_4 == OP_BUY && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Above => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Orange); } } if (Force_MSP_ADDCYCLE_Only) { if (l_cmd_4 == OP_SELL && OrderComment() == ls_72 + "ADD-BRT" || OrderComment() == ls_72 + "ADD-INV" || OrderComment() == ls_72 + "ADD-REV" || OrderComment() == ls_72 + "ADD-SCA" && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Below => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Orange); } } else { if (l_cmd_4 == OP_SELL && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Below => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Orange); } } } gs_1340 = "MANUAL MSP ABOVE (DOWNTREND): REVERSAL DOWN FOR " + ls_56 + " | " + DateToStr(TimeCurrent()) + " | OPEN ORDER (BUY:SELL)= " + BSOrdersTotal(l_magic_8, 0) + ":" + BSOrdersTotal(l_magic_8, 1); if (ai_0 == 1) { gd_1208 = ld_32; GlobalVariableSet(g_var_name_1040, gd_1208); gi_1364 = FALSE; return; } if (ai_0 == 2) { gd_1216 = ld_32; GlobalVariableSet(g_var_name_1088, gd_1216); gi_1368 = FALSE; return; } if (ai_0 == 3) { gd_1224 = ld_32; GlobalVariableSet(g_var_name_1136, gd_1224); gi_1372 = FALSE; return; } if (ai_0 == 4) { gd_1232 = ld_32; GlobalVariableSet(g_var_name_1184, gd_1232); gi_1376 = FALSE; } } void ForceMSPBelow(int ai_0) { int l_cmd_4; int l_magic_8; bool l_ord_close_12; double ld_32; double ld_unused_48; string ls_56; string ls_64; string ls_72; double ld_80; double ld_88; if (ai_0 == 1) { ld_32 = gd_1208; ld_unused_48 = gd_1240; l_magic_8 = g_magic_920; ls_56 = "CYCLE-C1"; ls_64 = gs_c1b_1024; ls_72 = gs_c1s_1032; } else { if (ai_0 == 2) { ld_32 = gd_1216; ld_unused_48 = gd_1248; l_magic_8 = g_magic_924; ls_56 = "CYCLE-C2"; ls_64 = gs_c2b_1072; ls_72 = gs_c2s_1080; } else { if (ai_0 == 3) { ld_32 = gd_1224; ld_unused_48 = gd_1256; l_magic_8 = g_magic_928; ls_56 = "CYCLE-C3"; ls_64 = gs_d3b_1120; ls_72 = gs_d3s_1128; } else { if (ai_0 == 4) { ld_32 = gd_1232; ld_unused_48 = gd_1264; l_magic_8 = g_magic_932; ls_56 = "CYCLE-C4"; ls_64 = gs_d4b_1168; ls_72 = gs_d4s_1176; } } } } double ld_unused_40 = 0; if (Force_MSP_BottomPrice >= 0.0) ld_88 = Force_MSP_BottomPrice; else ld_88 = 0; if (Force_MSP_TopPrice > 0.0) ld_80 = Force_MSP_TopPrice; else ld_80 = 100; if (Move_SP && iClose(NULL, 0, 0) < ld_32) { ld_32 = iClose(NULL, 0, 0); gi_1300 = 0; GlobalVariableSet(gs_rsis_944, gi_1300); } int l_ord_total_20 = OrdersTotal(); for (int l_pos_16 = l_ord_total_20 - 1; l_pos_16 >= 0; l_pos_16--) { OrderSelect(l_pos_16, SELECT_BY_POS); l_cmd_4 = OrderType(); l_ord_close_12 = FALSE; if (Force_MSP_ADDCYCLE_Only) { if (l_cmd_4 == OP_SELL && OrderComment() == ls_72 + "ADD-BRT" || OrderComment() == ls_72 + "ADD-INV" || OrderComment() == ls_72 + "ADD-REV" || OrderComment() == ls_72 + "ADD-SCA" && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Below => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Orange); } } else { if (l_cmd_4 == OP_SELL && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Below => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_916, Orange); } } if (Force_MSP_ADDCYCLE_Only) { if (l_cmd_4 == OP_BUY && OrderComment() == ls_64 + "ADD-BRT" || OrderComment() == ls_64 + "ADD-INV" || OrderComment() == ls_64 + "ADD-REV" || OrderComment() == ls_72 + "ADD-SCA" && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Above => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Orange); } } else { if (l_cmd_4 == OP_BUY && OrderMagicNumber() == l_magic_8 && OrderOpenPrice() <= ld_80 && OrderOpenPrice() >= ld_88 && OrderProfit() + OrderSwap() + OrderCommission() > gd_760) { Print("Executing MSP Above => Order Close for Cycle#: " + ai_0 + " | iClose=" + DoubleToStr(iClose(NULL, 0, 0), 4) + " | ZL=" + DoubleToStr(ld_32, 4)); l_ord_close_12 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_916, Orange); } } } gs_1340 = "MANUAL MSP BELOW (UPTREND): REVERSAL UP FOR " + ls_56 + " | " + DateToStr(TimeCurrent()) + " | OPEN ORDER (BUY:SELL)= " + BSOrdersTotal(l_magic_8, 0) + ":" + BSOrdersTotal(l_magic_8, 1); if (ai_0 == 1) { gd_1208 = ld_32; GlobalVariableSet(g_var_name_1040, gd_1208); gi_1364 = FALSE; return; } if (ai_0 == 2) { gd_1216 = ld_32; GlobalVariableSet(g_var_name_1088, gd_1216); gi_1368 = FALSE; return; } if (ai_0 == 3) { gd_1224 = ld_32; GlobalVariableSet(g_var_name_1136, gd_1224); gi_1372 = FALSE; return; } if (ai_0 == 4) { gd_1232 = ld_32; GlobalVariableSet(g_var_name_1184, gd_1232); gi_1376 = FALSE; } } bool CalculateLotsTarget(int a_magic_0) { int li_4; if (Risk_Setting == 88) { if (g_global_var_1288 > 1.5 * Initial_Capital) gi_1572 = 3; else { if (g_global_var_1288 > 1.2 * Initial_Capital) gi_1572 = 2; else gi_1572 = 1; } } else gi_1572 = Risk_Setting; switch (gi_1572) { case 0: li_4 = 10000; break; case 1: li_4 = 10000; break; case 2: li_4 = 7000; break; case 3: li_4 = 5000; break; default: li_4 = 10000; } double ld_12 = AccountEquity(); if (!g_bool_1396 && OrdersTotal() == 0 && ld_12 < li_4 && gi_1572 > 0) { Alert(AccountNumber() + ":Not enough funds to run this EA with the selected Risk Setting."); return (FALSE); } if (g_bool_1396 && OrdersTotal() == 0 && ld_12 < li_4 / 10 && gi_1572 > 0) { Alert(AccountNumber() + ":Not enough funds to run this EA with the selected Risk Setting."); return (FALSE); } if (!g_bool_1396 && gi_1572 > 0) { if (a_magic_0 == g_magic_920) gd_1240 = MathFloor(ld_12 / li_4) / 100.0; if (a_magic_0 == g_magic_924) gd_1248 = MathFloor(ld_12 / li_4) / 100.0; if (a_magic_0 == g_magic_928) gd_1256 = MathFloor(ld_12 / li_4) / 100.0; if (a_magic_0 == g_magic_932) gd_1264 = MathFloor(ld_12 / li_4) / 100.0; gd_844 = gd_1240 * gi_840; } else { if (g_bool_1396 && gi_1572 > 0) { if (a_magic_0 == g_magic_920) gd_1240 = StrToDouble(DoubleToStr(ld_12 / li_4, 2)) / 10.0; if (a_magic_0 == g_magic_924) gd_1248 = StrToDouble(DoubleToStr(ld_12 / li_4, 2)) / 10.0; if (a_magic_0 == g_magic_928) gd_1256 = StrToDouble(DoubleToStr(ld_12 / li_4, 2)) / 10.0; if (a_magic_0 == g_magic_932) gd_1264 = StrToDouble(DoubleToStr(ld_12 / li_4, 2)) / 10.0; gd_844 = gd_1240 / 10.0 * gi_840; } else { if (!g_bool_1396 && gi_1572 == 0) { if (a_magic_0 == g_magic_920) gd_1240 = Lots_C1; if (a_magic_0 == g_magic_924) gd_1248 = Lots_C2; if (a_magic_0 == g_magic_928) gd_1256 = Lots_C3; if (a_magic_0 == g_magic_932) gd_1264 = Lots_C4; gd_844 = gd_1240 * gi_840; } else { if (g_bool_1396 && gi_1572 == 0) { if (a_magic_0 == g_magic_920) gd_1240 = Lots_C1; if (a_magic_0 == g_magic_924) gd_1248 = Lots_C2; if (a_magic_0 == g_magic_928) gd_1256 = Lots_C3; if (a_magic_0 == g_magic_932) gd_1264 = Lots_C4; gd_844 = gd_1240 / 10.0 * gi_840; } } } } gd_852 = 5.0 * gd_844; gd_860 = 0.3 * gd_844; gd_868 = gd_844 / 2.0; return (TRUE); } void createline(double a_price_0, int ai_8) { string l_name_12 = "Drawline"; color l_color_20 = Black; switch (ai_8) { case 1: l_name_12 = "Drawline_C1"; l_color_20 = Red; break; case 2: l_name_12 = "Drawline_C2"; l_color_20 = Yellow; break; case 3: l_name_12 = "Drawline_C3"; l_color_20 = Orange; break; case 4: l_name_12 = "Drawline_C4"; l_color_20 = Pink; } ObjectDelete(l_name_12); ObjectCreate(l_name_12, OBJ_HLINE, 0, TimeCurrent(), a_price_0); ObjectSet(l_name_12, OBJPROP_COLOR, l_color_20); ObjectSet(l_name_12, OBJPROP_STYLE, STYLE_SOLID); } int deleteline(int ai_0) { string l_name_4 = "Drawline"; switch (ai_0) { case 1: l_name_4 = "Drawline_C1"; break; case 2: l_name_4 = "Drawline_C2"; break; case 3: l_name_4 = "Drawline_C3"; break; case 4: l_name_4 = "Drawline_C4"; } ObjectDelete(l_name_4); return (0); } double TargetPrice(int a_magic_0, int ai_4, double ad_8, int ai_16, bool ai_20) { int l_global_var_24; double ld_unused_28; double ld_36; double ld_44; double ld_ret_68; double ld_ret_76; int l_cmd_104; if (ai_4 == 1) { l_global_var_24 = GlobalVariableGet(g_var_name_1016); ld_unused_28 = gd_1240; } else { if (ai_4 == 2) { l_global_var_24 = GlobalVariableGet(g_var_name_1064); ld_unused_28 = gd_1248; } else { if (ai_4 == 3) { l_global_var_24 = GlobalVariableGet(g_var_name_1112); ld_unused_28 = gd_1256; } else { if (ai_4 == 4) { l_global_var_24 = GlobalVariableGet(g_var_name_1160); ld_unused_28 = gd_1264; } } } } int l_ord_total_96 = OrdersTotal(); int li_unused_100 = 0; l_ord_total_96 = OrdersTotal(); if (l_ord_total_96 > 0) { for (int l_pos_92 = l_ord_total_96 - 1; l_pos_92 >= 0; l_pos_92--) { OrderSelect(l_pos_92, SELECT_BY_POS, MODE_TRADES); l_cmd_104 = OrderType(); if (l_cmd_104 == OP_BUY && OrderMagicNumber() == a_magic_0) ld_36 += OrderLots() * MarketInfo(Symbol(), MODE_TICKVALUE); if (l_cmd_104 == OP_SELL && OrderMagicNumber() == a_magic_0) ld_44 += OrderLots() * MarketInfo(Symbol(), MODE_TICKVALUE); } } double ld_ret_52 = ld_36 - ld_44; double ld_ret_60 = ld_44 - ld_36; double ld_84 = MyAccountProfit(a_magic_0) + ClosedProfit(a_magic_0, l_global_var_24) - ad_8; if (ld_ret_52 > 0.0) { ld_ret_68 = iClose(NULL, 0, 0) + MathAbs(ld_84 / ld_ret_52) * gd_1564; if (Show_Target_Line && !ai_20) createline(ld_ret_68, ai_4); } else ld_ret_68 = 0; if (ld_ret_60 > 0.0) { ld_ret_76 = iClose(NULL, 0, 0) - MathAbs(ld_84 / ld_ret_60) * gd_1564; if (Show_Target_Line && !ai_20) createline(ld_ret_76, ai_4); } else ld_ret_76 = 0; if (ai_20) { if (ai_16 == 0) { if (ld_ret_52 > 0.0) return (ld_ret_52); return (0); } if (ai_16 != 1) return (0.0); if (ld_ret_60 > 0.0) return (ld_ret_60); return (0); } if (ai_16 == 0) return (ld_ret_68); if (ai_16 == 1) return (ld_ret_76); return (0.0); } double FindLotSize(int a_magic_0) { int l_ord_total_8 = OrdersTotal(); for (int l_pos_4 = l_ord_total_8 - 1; l_pos_4 >= 0; l_pos_4--) { OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0) { if (a_magic_0 == g_magic_920) { if (!(OrderComment() != gs_c1b_1024 + "ADD-BRT" && OrderComment() != gs_c1s_1032 + "ADD-BRT" && OrderComment() != gs_c1b_1024 + "ADD-INV" && OrderComment() != gs_c1s_1032 + "ADD-INV" && OrderComment() != gs_c1b_1024 + "ADD-REV" && OrderComment() != gs_c1s_1032 + "ADD-REV" && OrderComment() != gs_c1b_1024 + "ADD-SCA" && OrderComment() != gs_c1s_1032 + "ADD-SCA")) continue; gd_1240 = OrderLots(); GlobalVariableSet(g_var_name_1048, gd_1240); return (OrderLots()); } if (a_magic_0 == g_magic_924) { if (!(OrderComment() != gs_c1b_1024 + "ADD-BRT" && OrderComment() != gs_c1s_1032 + "ADD-BRT" && OrderComment() != gs_c1b_1024 + "ADD-INV" && OrderComment() != gs_c1s_1032 + "ADD-INV" && OrderComment() != gs_c1b_1024 + "ADD-REV" && OrderComment() != gs_c1s_1032 + "ADD-REV" && OrderComment() != gs_c1b_1024 + "ADD-SCA" && OrderComment() != gs_c1s_1032 + "ADD-SCA")) continue; gd_1248 = OrderLots(); GlobalVariableSet(g_var_name_1096, gd_1248); return (OrderLots()); } if (a_magic_0 == g_magic_928) { if (!(OrderComment() != gs_c1b_1024 + "ADD-BRT" && OrderComment() != gs_c1s_1032 + "ADD-BRT" && OrderComment() != gs_c1b_1024 + "ADD-INV" && OrderComment() != gs_c1s_1032 + "ADD-INV" && OrderComment() != gs_c1b_1024 + "ADD-REV" && OrderComment() != gs_c1s_1032 + "ADD-REV" && OrderComment() != gs_c1b_1024 + "ADD-SCA" && OrderComment() != gs_c1s_1032 + "ADD-SCA")) continue; gd_1256 = OrderLots(); GlobalVariableSet(g_var_name_1144, gd_1256); return (OrderLots()); } if (a_magic_0 == g_magic_932) { if (OrderComment() != gs_c1b_1024 + "ADD-BRT" && OrderComment() != gs_c1s_1032 + "ADD-BRT" && OrderComment() != gs_c1b_1024 + "ADD-INV" && OrderComment() != gs_c1s_1032 + "ADD-INV" && OrderComment() != gs_c1b_1024 + "ADD-REV" && OrderComment() != gs_c1s_1032 + "ADD-REV" && OrderComment() != gs_c1b_1024 + "ADD-SCA" && OrderComment() != gs_c1s_1032 + "ADD-SCA") { gd_1264 = OrderLots(); GlobalVariableSet(g_var_name_1192, gd_1264); return (OrderLots()); } } } } return (0); } int start() { bool li_0; string ls_unused_4; string ls_unused_12; string ls_20; string ls_28; double ld_44; double ld_52; double ld_84; double ld_92; double ld_100; double ld_108; double ld_116; double ld_124; double ld_132; double ld_140; double ld_148; double ld_156; double ld_164; double ld_172; double ld_180; double ld_188; double ld_196; double ld_204; double ld_212; double ld_220; double ld_228; double ld_236; double ld_244; double ld_252; string ls_unused_260; string ls_unused_268; string ls_unused_276; string ls_unused_284; string ls_292; string ls_300; string ls_308; string ls_316; string ls_unused_324; string ls_332; string ls_340; string ls_348; string ls_356; string ls_unused_364; string ls_372; string ls_380; string ls_388; string ls_396; string ls_404; string ls_412; string ls_420; string ls_unused_428; string ls_436; string ls_444; string ls_452; string ls_460; string ls_468; string ls_476; string ls_484; string ls_492; string ls_unused_500; string ls_508; string ls_516; if (!CekCondition()) return (0); if (!CekTimeLimit()) gi_1400 = TRUE; g_bool_1396 = MiniAccount; if (g_count_284 > gi_276) { Comment("System Locked"); return (0); } if (gi_272) { if (gi_288 < TimeCurrent()) { if (validateAcc() == 1) { gi_1400 = FALSE; gi_272 = FALSE; g_count_284 = 0; } else { gi_1400 = TRUE; gi_272 = TRUE; g_count_284++; gi_288 = TimeCurrent() + gi_292; } } } if (TimeCurrent() > g_datetime_208 + 60 * gi_252) { g_datetime_208 = TimeCurrent(); li_0 = TRUE; } else { gi_260 = g_datetime_208 + 60 * gi_252 - TimeCurrent(); gi_unused_264 = MathCeil(gi_260 / 60); gi_unused_268 = MathMod(gi_260, 60); li_0 = FALSE; } if (li_0) { ls_20 = ""; if (IsDemo()) { gs_136 = "http://www.forexhope.com/demo/"; gs_144 = "http://www.switch-funds.com/demo/"; gs_152 = "http://www.dxc-server.com/demo/"; } else { gs_136 = "http://www.forexhope.com/onlineparam/"; gs_144 = "http://www.switch-funds.com/onlineparam/"; gs_152 = "http://www.dxc-server.com/onlineparam/"; } ls_28 = gs_136 + gs_168 + "&accNumber=" + AccountNumber() + "&productID=" + gs_dts_176; GrabWeb(ls_28, gs_192); if (StringLen(gs_192) != gi_256) { ls_28 = gs_144 + gs_168 + "&accNumber=" + AccountNumber() + "&productID=" + gs_dts_176; GrabWeb(ls_28, gs_192); if (StringLen(gs_192) != gi_256) { ls_28 = gs_152 + gs_168 + "&accNumber=" + AccountNumber() + "&productID=" + gs_dts_176; GrabWeb(ls_28, gs_192); if (StringLen(gs_192) != gi_256) { ls_20 = "Get Online Variable Failed"; g_str2int_316 = 1; g_str2int_320 = 1; g_str2int_324 = 0; g_str2int_328 = 0; g_str2int_340 = 0; g_str2int_344 = 0; g_str2int_332 = 0; g_str2int_336 = 0; g_str2int_352 = 0; g_str2int_356 = 0; g_str2int_364 = 0; g_str2int_368 = 0; g_str2int_372 = 0; g_str2int_376 = 0; g_str2int_380 = 0; g_str2int_384 = 0; g_str2int_348 = 0; g_str2int_360 = 0; } } } if (ls_20 == "") { g_str2int_316 = StrToInteger(StringSubstr(gs_192, 0, 1)); g_str2int_320 = StrToInteger(StringSubstr(gs_192, 1, 1)); g_str2int_324 = StrToInteger(StringSubstr(gs_192, 2, 1)); g_str2int_328 = StrToInteger(StringSubstr(gs_192, 3, 1)); g_str2int_340 = StrToInteger(StringSubstr(gs_192, 4, 1)); g_str2int_344 = StrToInteger(StringSubstr(gs_192, 5, 1)); g_str2int_332 = StrToInteger(StringSubstr(gs_192, 6, 1)); g_str2int_336 = StrToInteger(StringSubstr(gs_192, 7, 1)); g_str2int_352 = StrToInteger(StringSubstr(gs_192, 8, 1)); g_str2int_356 = StrToInteger(StringSubstr(gs_192, 9, 1)); g_str2int_364 = StrToInteger(StringSubstr(gs_192, 10, 1)); g_str2int_368 = StrToInteger(StringSubstr(gs_192, 11, 1)); g_str2int_372 = StrToInteger(StringSubstr(gs_192, 12, 1)); g_str2int_376 = StrToInteger(StringSubstr(gs_192, 13, 1)); g_str2int_380 = StrToInteger(StringSubstr(gs_192, 14, 1)); g_str2int_384 = StrToInteger(StringSubstr(gs_192, 15, 1)); g_str2int_348 = StrToInteger(StringSubstr(gs_192, 16, 1)); g_str2int_360 = StrToInteger(StringSubstr(gs_192, 17, 1)); g_str2int_296 = StrToInteger(StringSubstr(gs_192, 18, 1)); g_str2int_300 = StrToInteger(StringSubstr(gs_192, 19, 1)); } } g_iadx_1404 = iADX(NULL, PERIOD_M30, g_period_900, PRICE_CLOSE, MODE_MAIN, 0); g_iadx_1412 = iADX(NULL, PERIOD_M30, g_period_900, PRICE_CLOSE, MODE_MAIN, 1); g_ima_1428 = iMA(NULL, PERIOD_M30, g_period_904, 0, MODE_SMA, PRICE_CLOSE, 0); gd_1420 = gi_1516 * iATR(NULL, PERIOD_M30, g_period_904, 0); gd_1444 = g_ima_1428 + gd_1420; gd_1436 = g_ima_1428 - gd_1420; g_ima_1460 = iMA(NULL, PERIOD_D1, g_period_912, 0, MODE_SMA, PRICE_CLOSE, 0); gd_1452 = gi_1516 * iATR(NULL, PERIOD_D1, g_period_912, 0); gd_1476 = g_ima_1460 + gd_1452; gd_1468 = g_ima_1460 - gd_1452; g_ima_1532 = iMA(NULL, PERIOD_D1, g_period_912, 0, MODE_SMA, PRICE_CLOSE, 0); g_ima_1524 = iMA(NULL, PERIOD_D1, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 0); g_ima_1540 = iMA(NULL, PERIOD_H4, g_period_908, 0, MODE_SMA, PRICE_CLOSE, 0); g_imacd_1484 = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1); g_imacd_1492 = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1); g_imacd_1500 = iMACD(NULL, PERIOD_H4, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1); g_imacd_1508 = iMACD(NULL, PERIOD_H4, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1); CekRSI(); CekRSI_H4(); g_global_var_1288 = GlobalVariableGet(g_var_name_936); if (gi_1400) { g_bool_1348 = FALSE; g_bool_1352 = FALSE; g_bool_1356 = FALSE; g_bool_1360 = FALSE; } else { if (MyAccountProfit(g_magic_920) < gd_880 * g_global_var_1288 || MyAccountProfit(g_magic_924) < gd_880 * g_global_var_1288 || MyAccountProfit(g_magic_928) < gd_880 * g_global_var_1288 || MyAccountProfit(g_magic_932) < gd_880 * g_global_var_1288 || MyAccountProfit(g_magic_920) + MyAccountProfit(g_magic_924) + MyAccountProfit(g_magic_928) + MyAccountProfit(g_magic_932) < gd_880 * g_global_var_1288 || AccountProfit() < gd_880 * g_global_var_1288 || OrdersTotal() > gi_832) { g_bool_1348 = FALSE; g_bool_1352 = FALSE; g_bool_1356 = FALSE; g_bool_1360 = FALSE; } else { g_bool_1348 = Enable_C1; g_bool_1352 = Enable_C2; g_bool_1356 = Enable_C3; g_bool_1360 = Enable_C4; } } string ls_36 = ""; if (OrdersTotal() > 0) { if (gd_1240 > 0.0) ld_44 = gd_1240; else { if (gd_1248 > 0.0) ld_44 = gd_1248; else { if (gd_1256 > 0.0) ld_44 = gd_1256; else if (gd_1264 > 0.0) ld_44 = gd_1264; } } if (!g_bool_1396) { gd_852 = 5.0 * ld_44 * gi_840; gd_844 = ld_44 * gi_840; } else { gd_852 = 5.0 * ld_44 / 10.0 * gi_840; gd_844 = ld_44 / 10.0 * gi_840; } } if (OrdersTotal() > gi_832 || AccountEquity() > g_global_var_1288 + gd_852 || (gd_1208 != 0.0 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1272)) > gi_836) || (gd_1216 != 0.0 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1276)) > gi_836) || (gd_1224 != 0.0 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1280)) > gi_836) || (gd_1232 != 0.0 && MathAbs(TimeDayOfYear(TimeCurrent()) - TimeDayOfYear(g_global_var_1284)) > gi_836)) gi_888 = TRUE; else gi_888 = FALSE; if (gi_888 && Enable_Watermark_Calc) { if (!g_bool_1396) ld_52 = ld_44 * gi_840; else ld_52 = ld_44 / 10.0 * gi_840; if (AccountEquity() > g_global_var_1288 + ld_52) { ls_36 = "CLOSE ALL Profit C1-C4 at =" + AccountProfit(); if (gd_1208 != 0.0) { while (MyOrdersTotal(g_magic_920) > 0) Close1ZLProfit(g_magic_920, White, g_slippage_916); gd_1208 = 0; GlobalVariableSet(g_var_name_1040, gd_1208); g_global_var_1272 = 0; GlobalVariableSet(g_var_name_1016, g_global_var_1272); deleteline(1); } if (gd_1216 != 0.0) { while (MyOrdersTotal(g_magic_924) > 0) Close1ZLProfit(g_magic_924, White, g_slippage_916); gd_1216 = 0; GlobalVariableSet(g_var_name_1088, gd_1216); g_global_var_1276 = 0; GlobalVariableSet(g_var_name_1064, g_global_var_1276); deleteline(2); } if (gd_1224 != 0.0) { while (MyOrdersTotal(g_magic_928) > 0) Close1ZLProfit(g_magic_928, White, g_slippage_916); gd_1224 = 0; GlobalVariableSet(g_var_name_1136, gd_1224); g_global_var_1280 = 0; GlobalVariableSet(g_var_name_1112, g_global_var_1280); deleteline(3); } if (gd_1232 != 0.0) { while (MyOrdersTotal(g_magic_932) > 0) Close1ZLProfit(g_magic_932, White, g_slippage_916); gd_1232 = 0; GlobalVariableSet(g_var_name_1184, gd_1232); g_global_var_1284 = 0; GlobalVariableSet(g_var_name_1160, g_global_var_1284); deleteline(4); } gi_1320++; GlobalVariableSet(g_var_name_976, gi_1320); } } if (OrdersTotal() == 0 && AccountEquity() > g_global_var_1288) { g_global_var_1288 = AccountEquity(); GlobalVariableSet(g_var_name_936, g_global_var_1288); } double ld_60 = g_global_var_1288 - AccountEquity(); double ld_68 = Initial_Capital - AccountEquity(); if (ld_60 / g_global_var_1288 > gd_1576) { gd_1576 = ld_60 / g_global_var_1288; g_datetime_1592 = TimeCurrent(); } if (ld_68 / Initial_Capital > gd_1584) gd_1584 = ld_68 / Initial_Capital; if (OrdersTotal() > g_ord_total_1600) g_ord_total_1600 = OrdersTotal(); if (MyOrdersTotal(g_magic_920) > gi_1596) gi_1596 = MyOrdersTotal(g_magic_920); if (MyOrdersTotal(g_magic_924) > gi_1596) gi_1596 = MyOrdersTotal(g_magic_924); if (MyOrdersTotal(g_magic_928) > gi_1596) gi_1596 = MyOrdersTotal(g_magic_928); if (MyOrdersTotal(g_magic_932) > gi_1596) gi_1596 = MyOrdersTotal(g_magic_932); if (Check_Position_Left) { while (gd_1208 == 0.0 && GlobalVariableGet(g_var_name_1040) == 0.0 && MyOrdersTotal(g_magic_920) > 0 && MyOrdersTotal(g_magic_920) <= 10) Close1ZLProfit(g_magic_920, Red, 100); while (gd_1216 == 0.0 && GlobalVariableGet(g_var_name_1088) == 0.0 && MyOrdersTotal(g_magic_924) > 0 && MyOrdersTotal(g_magic_924) <= 10) Close1ZLProfit(g_magic_924, Red, 100); while (gd_1224 == 0.0 && GlobalVariableGet(g_var_name_1136) == 0.0 && MyOrdersTotal(g_magic_928) > 0 && MyOrdersTotal(g_magic_928) <= 10) Close1ZLProfit(g_magic_928, Red, 100); while (gd_1232 == 0.0 && GlobalVariableGet(g_var_name_1184) == 0.0 && MyOrdersTotal(g_magic_932) > 0 && MyOrdersTotal(g_magic_932) <= 10) Close1ZLProfit(g_magic_932, Red, 100); } double ld_76 = 0; if (gd_1208 != 0.0) { if (!g_bool_1396) ld_76 = gd_1240 * gi_840; else ld_76 = gd_1240 / 10.0 * gi_840; ld_108 = TargetPrice(g_magic_920, 1, ld_76, 0, 0); ld_116 = TargetPrice(g_magic_920, 1, ld_76, 1, 0); ld_124 = TargetPrice(g_magic_920, 1, ld_76, 0, 1); ld_132 = TargetPrice(g_magic_920, 1, ld_76, 1, 1); g_global_var_1272 = GlobalVariableGet(g_var_name_1016); if (MyAccountProfit(g_magic_920) + ClosedProfit(g_magic_920, g_global_var_1272) >= ld_76) { while (MyOrdersTotal(g_magic_920) > 0) Close1ZLProfit(g_magic_920, Silver, g_slippage_916); gi_1324++; GlobalVariableSet(g_var_name_1056, gi_1324); gd_1208 = 0; GlobalVariableSet(g_var_name_1040, gd_1208); g_global_var_1272 = 0; GlobalVariableSet(g_var_name_1016, g_global_var_1272); deleteline(1); } ld_140 = (-StopLoss_Percentage) / 100.0 * g_global_var_1288; if (StopLoss_OpenPosNum > 0 && StopLoss_Distance > 0 && MyOrdersTotal(g_magic_920) > StopLoss_OpenPosNum) { if (MyAccountProfit(g_magic_920) + ClosedProfit(g_magic_920, g_global_var_1272) >= ld_140 && MathAbs(iClose(NULL, 0, 0) - ld_116) / gd_1564 < StopLoss_Distance || MathAbs(iClose(NULL, 0, 0) - ld_108) / gd_1564 < StopLoss_Distance) { while (MyOrdersTotal(g_magic_920) > 0) Close1ZLProfit(g_magic_920, Silver, g_slippage_916); gi_1324++; GlobalVariableSet(g_var_name_1056, gi_1324); gd_1208 = 0; GlobalVariableSet(g_var_name_1040, gd_1208); g_global_var_1272 = 0; GlobalVariableSet(g_var_name_1016, g_global_var_1272); deleteline(1); } } } if (gd_1208 == 0.0 && g_bool_1348 && (DayOfWeek() >= Start_Trading_Day && DayOfWeek() <= End_Trading_Day)) { if (Use_Keltner_Entry) { if ((g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) > gd_1444) || (g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) < gd_1436)) { if (CheckZL(g_magic_920, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_920)) { GlobalVariableSet(g_var_name_1048, gd_1240); gd_1208 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1040, gd_1208); g_global_var_1272 = TimeCurrent(); GlobalVariableSet(g_var_name_1016, g_global_var_1272); } } } } else { if (CheckZL(g_magic_920, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_920)) { GlobalVariableSet(g_var_name_1048, gd_1240); gd_1208 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1040, gd_1208); g_global_var_1272 = TimeCurrent(); GlobalVariableSet(g_var_name_1016, g_global_var_1272); } } } } if (gd_1208 != 0.0) { if (Enable_ASP_C1) MovingZeroLine(g_magic_920); if (gd_1240 <= 0.01) FindLotSize(g_magic_920); DoPyramiding(g_magic_920); if (Enable_BRT_Pyramiding) Do_BRT_Pyramiding(g_magic_920); if (Enable_REV_Pyramiding) Do_REV_Pyramiding(g_magic_920); if (Enable_INV_Pyramiding) Do_INV_Pyramiding(g_magic_920); if (Enable_SCA_Pyramiding) Do_SCA_Pyramiding(g_magic_920); if (Force_MSP_Above && iClose(NULL, 0, 0) >= Force_MSP_LimitPrice && Force_MSP_CycleNum == 1) { if (gi_1364 || gi_756) { ForceMSPAbove(1); gi_1364 = FALSE; } } if (Force_MSP_Below && iClose(NULL, 0, 0) <= Force_MSP_LimitPrice && Force_MSP_CycleNum == 1) { if (gi_1364 || gi_756) { ForceMSPBelow(1); gi_1364 = FALSE; } } if (Force_CLOSE_Above && gi_1380 && iClose(NULL, 0, 0) >= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 1) { Close1ZLProfit(g_magic_920, Chocolate, g_slippage_916); gi_1380 = FALSE; deleteline(1); Force_CLOSE_Above = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } if (Force_CLOSE_Below && gi_1380 && iClose(NULL, 0, 0) <= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 1) { Close1ZLProfit(g_magic_920, Chocolate, g_slippage_916); gi_1380 = FALSE; deleteline(1); Force_CLOSE_Below = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } } if (gd_1216 != 0.0) { if (!g_bool_1396) ld_84 = gd_1248 * gi_840; else ld_84 = gd_1248 / 10.0 * gi_840; ld_148 = TargetPrice(g_magic_924, 2, ld_84, 0, 0); ld_156 = TargetPrice(g_magic_924, 2, ld_84, 1, 0); ld_164 = TargetPrice(g_magic_924, 2, ld_84, 0, 1); ld_172 = TargetPrice(g_magic_924, 2, ld_84, 1, 1); if (MyAccountProfit(g_magic_924) + ClosedProfit(g_magic_924, g_global_var_1276) >= ld_84) { Close1ZLProfit(g_magic_924, Silver, g_slippage_916); gi_1328++; GlobalVariableSet(g_var_name_1104, gi_1328); gd_1216 = 0; GlobalVariableSet(g_var_name_1088, gd_1216); g_global_var_1276 = 0; GlobalVariableSet(g_var_name_1064, g_global_var_1276); deleteline(2); } if (StopLoss_OpenPosNum > 0 && StopLoss_Distance > 0) { if (MyOrdersTotal(g_magic_924) > StopLoss_OpenPosNum && MathAbs(iClose(NULL, 0, 0) - ld_156) / gd_1564 < StopLoss_Distance || MathAbs(iClose(NULL, 0, 0) - ld_148) / gd_1564 < StopLoss_Distance) { Close1ZLProfit(g_magic_924, Silver, g_slippage_916); gi_1328++; GlobalVariableSet(g_var_name_1104, gi_1328); gd_1216 = 0; GlobalVariableSet(g_var_name_1088, gd_1216); g_global_var_1276 = 0; GlobalVariableSet(g_var_name_1064, g_global_var_1276); deleteline(2); } } } if (gd_1216 == 0.0 && g_bool_1352 && (DayOfWeek() >= Start_Trading_Day && DayOfWeek() <= End_Trading_Day)) { if (Use_Keltner_Entry) { if ((g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) > gd_1444) || (g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) < gd_1436)) { if (CheckZL(g_magic_924, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_924)) { GlobalVariableSet(g_var_name_1096, gd_1248); gd_1216 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1088, gd_1216); g_global_var_1276 = TimeCurrent(); GlobalVariableSet(g_var_name_1064, g_global_var_1276); } } } } else { if (CheckZL(g_magic_924, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_924)) { GlobalVariableSet(g_var_name_1096, gd_1248); gd_1216 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1088, gd_1216); g_global_var_1276 = TimeCurrent(); GlobalVariableSet(g_var_name_1064, g_global_var_1276); } } } } if (gd_1216 != 0.0) { if (Enable_ASP_C2) MovingZeroLine(g_magic_924); if (gd_1248 <= 0.01) FindLotSize(g_magic_924); DoPyramiding(g_magic_924); if (Enable_BRT_Pyramiding) Do_BRT_Pyramiding(g_magic_924); if (Enable_REV_Pyramiding) Do_REV_Pyramiding(g_magic_924); if (Enable_INV_Pyramiding) Do_INV_Pyramiding(g_magic_924); if (Enable_SCA_Pyramiding) Do_SCA_Pyramiding(g_magic_924); if (Force_MSP_Above && iClose(NULL, 0, 0) >= Force_MSP_LimitPrice && Force_MSP_CycleNum == 2) { if (gi_1368 || gi_756) { ForceMSPAbove(2); gi_1368 = FALSE; } } if (Force_MSP_Below && iClose(NULL, 0, 0) <= Force_MSP_LimitPrice && Force_MSP_CycleNum == 2) { if (gi_1368 || gi_756) { ForceMSPBelow(2); gi_1368 = FALSE; } } if (Force_CLOSE_Above && gi_1384 && iClose(NULL, 0, 0) >= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 2) { Close1ZLProfit(g_magic_924, Chocolate, g_slippage_916); gi_1384 = FALSE; deleteline(2); Force_CLOSE_Above = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } if (Force_CLOSE_Below && gi_1384 && iClose(NULL, 0, 0) <= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 2) { Close1ZLProfit(g_magic_924, Chocolate, g_slippage_916); gi_1384 = FALSE; deleteline(2); Force_CLOSE_Below = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } } if (gd_1224 != 0.0) { if (!g_bool_1396) ld_92 = gd_1256 * gi_840; else ld_92 = gd_1256 / 10.0 * gi_840; ld_180 = TargetPrice(g_magic_928, 3, ld_92, 0, 0); ld_188 = TargetPrice(g_magic_928, 3, ld_92, 1, 0); ld_196 = TargetPrice(g_magic_928, 3, ld_92, 0, 1); ld_204 = TargetPrice(g_magic_928, 3, ld_92, 1, 1); g_global_var_1280 = GlobalVariableGet(g_var_name_1112); if (MyAccountProfit(g_magic_928) + ClosedProfit(g_magic_928, g_global_var_1280) >= ld_92) { while (MyOrdersTotal(g_magic_928) > 0) Close1ZLProfit(g_magic_928, Silver, g_slippage_916); gd_1224 = 0; GlobalVariableSet(g_var_name_1136, gd_1224); g_global_var_1280 = 0; GlobalVariableSet(g_var_name_1112, g_global_var_1280); } ld_212 = (-StopLoss_Percentage) / 100.0 * g_global_var_1288; if (StopLoss_OpenPosNum > 0 && StopLoss_Distance > 0 && MyOrdersTotal(g_magic_928) > StopLoss_OpenPosNum) { if (MyAccountProfit(g_magic_928) + ClosedProfit(g_magic_928, g_global_var_1280) >= ld_212 && MathAbs(iClose(NULL, 0, 0) - ld_188) / gd_1564 < StopLoss_Distance || MathAbs(iClose(NULL, 0, 0) - ld_180) / gd_1564 < StopLoss_Distance) { while (MyOrdersTotal(g_magic_928) > 0) Close1ZLProfit(g_magic_928, Silver, g_slippage_916); gi_1332++; GlobalVariableSet(g_var_name_1152, gi_1332); gd_1224 = 0; GlobalVariableSet(g_var_name_1136, gd_1224); g_global_var_1280 = 0; GlobalVariableSet(g_var_name_1112, g_global_var_1280); deleteline(3); } } } if (gd_1224 == 0.0 && g_bool_1356 && (DayOfWeek() >= Start_Trading_Day && DayOfWeek() <= End_Trading_Day)) { if (Use_Keltner_Entry) { if ((g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) > gd_1444) || (g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) < gd_1436)) { if (CheckZL(g_magic_928, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_928)) { GlobalVariableSet(g_var_name_1144, gd_1256); gd_1224 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1136, gd_1224); g_global_var_1280 = TimeCurrent(); GlobalVariableSet(g_var_name_1112, g_global_var_1280); } } } } else { if (CheckZL(g_magic_928, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_928)) { GlobalVariableSet(g_var_name_1144, gd_1256); gd_1224 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1136, gd_1224); g_global_var_1280 = TimeCurrent(); GlobalVariableSet(g_var_name_1112, g_global_var_1280); } } } } if (gd_1224 != 0.0) { if (Enable_ASP_C3) MovingZeroLine(g_magic_928); DoPyramiding(g_magic_928); if (Enable_BRT_Pyramiding) Do_BRT_Pyramiding(g_magic_928); if (Enable_REV_Pyramiding) Do_REV_Pyramiding(g_magic_928); if (Enable_INV_Pyramiding) Do_INV_Pyramiding(g_magic_928); if (Enable_SCA_Pyramiding) Do_SCA_Pyramiding(g_magic_928); if (Force_MSP_Above && iClose(NULL, 0, 0) >= Force_MSP_LimitPrice && Force_MSP_CycleNum == 3) { if (gi_1372 || gi_756) { ForceMSPAbove(3); gi_1372 = FALSE; } } if (Force_MSP_Below && iClose(NULL, 0, 0) <= Force_MSP_LimitPrice && Force_MSP_CycleNum == 3) { if (gi_1372 || gi_756) { ForceMSPBelow(3); gi_1372 = FALSE; } } if (Force_CLOSE_Above && gi_1388 && iClose(NULL, 0, 0) >= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 3) { Close1ZLProfit(g_magic_928, Chocolate, g_slippage_916); gi_1388 = FALSE; deleteline(3); Force_CLOSE_Above = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } if (Force_CLOSE_Below && gi_1388 && iClose(NULL, 0, 0) <= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 3) { Close1ZLProfit(g_magic_928, Chocolate, g_slippage_916); gi_1388 = FALSE; deleteline(3); Force_CLOSE_Below = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } } if (gd_1232 != 0.0) { if (!g_bool_1396) ld_100 = gd_1264 * gi_840; else ld_100 = gd_1264 / 10.0 * gi_840; ld_220 = TargetPrice(g_magic_932, 4, ld_100, 0, 0); ld_228 = TargetPrice(g_magic_932, 4, ld_100, 1, 0); ld_236 = TargetPrice(g_magic_932, 4, ld_100, 0, 1); ld_244 = TargetPrice(g_magic_932, 4, ld_100, 1, 1); g_global_var_1284 = GlobalVariableGet(g_var_name_1160); if (MyAccountProfit(g_magic_932) + ClosedProfit(g_magic_932, g_global_var_1284) >= ld_100) { while (MyOrdersTotal(g_magic_932) > 0) Close1ZLProfit(g_magic_932, Silver, g_slippage_916); gi_1336++; GlobalVariableSet(g_var_name_1200, gi_1336); gd_1232 = 0; GlobalVariableSet(g_var_name_1184, gd_1232); g_global_var_1284 = 0; GlobalVariableSet(g_var_name_1160, g_global_var_1284); deleteline(4); } ld_252 = (-StopLoss_Percentage) / 100.0 * g_global_var_1288; if (StopLoss_OpenPosNum > 0 && StopLoss_Distance > 0 && MyOrdersTotal(g_magic_932) > StopLoss_OpenPosNum) { if (MyAccountProfit(g_magic_932) + ClosedProfit(g_magic_932, g_global_var_1284) >= ld_252 && MathAbs(iClose(NULL, 0, 0) - ld_228) / gd_1564 < StopLoss_Distance || MathAbs(iClose(NULL, 0, 0) - ld_220) / gd_1564 < StopLoss_Distance) { while (MyOrdersTotal(g_magic_932) > 0) Close1ZLProfit(g_magic_932, Silver, g_slippage_916); gi_1336++; GlobalVariableSet(g_var_name_1200, gi_1336); gd_1232 = 0; GlobalVariableSet(g_var_name_1184, gd_1232); g_global_var_1284 = 0; GlobalVariableSet(g_var_name_1160, g_global_var_1284); deleteline(4); } } } if (gd_1232 == 0.0 && g_bool_1360 && (DayOfWeek() >= Start_Trading_Day && DayOfWeek() <= End_Trading_Day)) { if (Use_Keltner_Entry) { if ((g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) > gd_1444) || (g_iadx_1404 > g_iadx_1412 && iClose(NULL, 0, 0) < gd_1436)) { if (CheckZL(g_magic_932, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_932)) { GlobalVariableSet(g_var_name_1192, gd_1264); gd_1232 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1184, gd_1232); g_global_var_1284 = TimeCurrent(); GlobalVariableSet(g_var_name_1160, g_global_var_1284); } } } } else { if (CheckZL(g_magic_932, iClose(NULL, 0, 0))) { if (CalculateLotsTarget(g_magic_932)) { GlobalVariableSet(g_var_name_1192, gd_1264); gd_1232 = iClose(NULL, 0, 0); GlobalVariableSet(g_var_name_1184, gd_1232); g_global_var_1284 = TimeCurrent(); GlobalVariableSet(g_var_name_1160, g_global_var_1284); } } } } if (gd_1232 != 0.0) { if (Enable_ASP_C4) MovingZeroLine(g_magic_932); if (gd_1264 <= 0.01) FindLotSize(g_magic_932); DoPyramiding(g_magic_932); if (Enable_BRT_Pyramiding) Do_BRT_Pyramiding(g_magic_932); if (Enable_REV_Pyramiding) Do_REV_Pyramiding(g_magic_932); if (Enable_INV_Pyramiding) Do_INV_Pyramiding(g_magic_932); if (Enable_SCA_Pyramiding) Do_SCA_Pyramiding(g_magic_932); if (Force_MSP_Above && iClose(NULL, 0, 0) >= Force_MSP_LimitPrice && Force_MSP_CycleNum == 4) { if (gi_1376 || gi_756) { ForceMSPAbove(4); gi_1376 = FALSE; } } if (Force_MSP_Below && iClose(NULL, 0, 0) <= Force_MSP_LimitPrice && Force_MSP_CycleNum == 4) { if (gi_1376 || gi_756) { ForceMSPBelow(4); gi_1376 = FALSE; } } if (Force_CLOSE_Above && gi_1392 && iClose(NULL, 0, 0) >= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 4) { Close1ZLProfit(g_magic_932, Chocolate, g_slippage_916); gi_1392 = FALSE; deleteline(4); Force_CLOSE_Above = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } if (Force_CLOSE_Below && gi_1392 && iClose(NULL, 0, 0) <= Force_CLOSE_LimitPrice && Force_CLOSE_CycleNum == 4) { Close1ZLProfit(g_magic_932, Chocolate, g_slippage_916); gi_1392 = FALSE; deleteline(4); Force_CLOSE_Below = FALSE; Force_CLOSE_LimitPrice = 0; Force_CLOSE_CycleNum = FALSE; } } if (g_global_var_1548) ls_unused_260 = "TRUE"; else ls_unused_260 = "FALSE"; if (g_global_var_1560) ls_unused_268 = "TRUE"; else ls_unused_268 = "FALSE"; if (g_global_var_1552) ls_unused_276 = "TRUE"; else ls_unused_276 = "FALSE"; if (g_global_var_1556) ls_unused_284 = "TRUE"; else ls_unused_284 = "FALSE"; if (gd_1208 == 0.0) ls_292 = "Waiting NEW SP"; else ls_292 = DateToStr(g_global_var_1272); if (gd_1216 == 0.0) ls_300 = "Waiting NEW SP"; else ls_300 = DateToStr(g_global_var_1276); if (gd_1224 == 0.0) ls_308 = "Waiting NEW SP"; else ls_308 = DateToStr(g_global_var_1280); if (gd_1232 == 0.0) ls_316 = "Waiting NEW SP"; else ls_316 = DateToStr(g_global_var_1284); if (Enable_C1) ls_332 = "ACTIVE"; else ls_332 = "Disable"; if (Enable_C2) ls_340 = "ACTIVE"; else ls_340 = "Disable"; if (Enable_C3) ls_348 = "ACTIVE"; else ls_348 = "Disable"; if (Enable_C4) ls_356 = "ACTIVE"; else ls_356 = "Disable"; if (Enable_Watermark_Calc) ls_372 = "ACTIVE"; else ls_372 = "Disable"; if (Force_CLOSE_Above) ls_380 = "TRUE"; else ls_380 = "FALSE"; if (Force_CLOSE_Below) ls_388 = "TRUE"; else ls_388 = "FALSE"; if (gi_1380) ls_396 = "ENABLE"; else ls_396 = "Disable"; if (gi_1384) ls_404 = "ENABLE"; else ls_404 = "Disable"; if (gi_1388) ls_412 = "ENABLE"; else ls_412 = "Disable"; if (gi_1392) ls_420 = "ENABLE"; else ls_420 = "Disable"; if (Force_MSP_Above) ls_444 = "TRUE"; else ls_444 = "FALSE"; if (Force_MSP_Below) ls_452 = "TRUE"; else ls_452 = "FALSE"; if (Move_SP) ls_460 = "TRUE"; else ls_460 = "FALSE"; if (gi_1364) ls_468 = "ENABLE"; else ls_468 = "Disable"; if (gi_1368) ls_476 = "ENABLE"; else ls_476 = "Disable"; if (gi_1372) ls_484 = "ENABLE"; else ls_484 = "Disable"; if (gi_1376) ls_492 = "ENABLE"; else ls_492 = "Disable"; if (g_bool_1396) ls_436 = "MINI Account"; else if (!g_bool_1396) ls_436 = "STANDARD Account"; if (gi_272) ls_508 = "Authorization... "; else ls_508 = "ACTIVE"; if (IsDemo()) ls_516 = "DEMO Account >> "; else ls_516 = "LIVE Account >> "; Comment(" DREAMBUILDER-FX 814 (Build DEC 20,2008) - Copyright@2007-2008 Yohanes R. Gagahlin. http://www.ForexHope.com", "\n YOUR DTS-1 STATUS: " + ls_516 + ls_508 + ls_20 + "\n C-Cycle Status = *LONG:" + Enabled(g_str2int_320) + " / *SHORT:" + Enabled(g_str2int_316) + "\n B-Cycle Status = *LONG:" + Enabled(g_str2int_328) + " / *SHORT:" + Enabled(g_str2int_324) + " | Multiply Lot:" + DoubleToStr(Multiply_Lot_BRT, 1) + "\n I-Cycle Status = *LONG:" + Enabled(g_str2int_344) + " / *SHORT:" + Enabled(g_str2int_340) + " | Multiply Lot:" + DoubleToStr(Multiply_Lot_INV, 1) + "\n R-Cycle Status = *LONG:" + Enabled(g_str2int_336) + " / *SHORT:" + Enabled(g_str2int_332) + " | Multiply Lot:" + DoubleToStr(Multiply_Lot_REV, 1) + "\n S-Cycle Status = *LONG:" + Enabled(g_str2int_356) + " / *SHORT:" + Enabled(g_str2int_352) + " | Multiply Lot:" + DoubleToStr(Multiply_Lot_SCA, 1) + "\n Automatic MSP Status = *TREND:" + Enabled(g_str2int_364) + " / *REVERSAL:" + Enabled(g_str2int_368) + "\n RISK SETTING: " + Risk_Setting + " (" + gi_1572 + ") " + "| SP Distance: " + SP_Distance + " | Enable Watermark Calculation: " + ls_372 + " | Account: " + ls_436 + " | DayOfWeek: " + DayOfWeek() + "\n\n TOTAL CLOSE PROFIT PERFORMANCE (C1/C2/C3/C4/SIMULTANEOUS CLOSE): " + gi_1324 + "+" + gi_1328 + "+" + gi_1332 + "+" + gi_1336 + "+" + gi_1320 + "=" + ((gi_1324 + gi_1328 + gi_1332 + gi_1336 + gi_1320)), "\n LAST MSP PROCESS: " + gs_1340, "\n\n LAST EQUITY WATERMARK: " + DoubleToStr(g_global_var_1288, 2) + " | ACCOUNT EQUITY: " + DoubleToStr(AccountEquity(), 2) + "\n TOTAL FLOATING +/-: ", DoubleToStr(AccountProfit(), 2) + " | TOTAL OPEN POSITION (C1-C4): " + OrdersTotal() + "\n CURRENT DRAWDOWN/PROFIT SINCE LAST EQUITY WATERMARK: " + DoubleToStr(AccountEquity() - g_global_var_1288, 2), "\n\n RUNNING CLOSED PROFIT (C1/C2/C3/C4): " + DoubleToStr(ClosedProfit(g_magic_920, GlobalVariableGet(g_var_name_1016)), 2) + " / " + DoubleToStr(ClosedProfit(g_magic_924, GlobalVariableGet(g_var_name_1064)), 2) + " / " + DoubleToStr(ClosedProfit(g_magic_928, GlobalVariableGet(g_var_name_1112)), 2) + " / " + DoubleToStr(ClosedProfit(g_magic_932, GlobalVariableGet(g_var_name_1160)), 2) + "\n ------------------------------------" + "\n C1 (" + ls_332 + ") | FLOATING +/- (TARGET): " + DoubleToStr(MyAccountProfit(g_magic_920), 2) + " (" + DoubleToStr(ld_76, 2) + ") | Target: " + DoubleToStr(ld_108, 4) + "/" + DoubleToStr(ld_116, 4) + "\n C2 (" + ls_340 + ") | FLOATING +/- (TARGET): " + DoubleToStr(MyAccountProfit(g_magic_924), 2) + " (" + DoubleToStr(ld_84, 2) + ") | Target: " + DoubleToStr(ld_148, 4) + "/" + DoubleToStr(ld_156, 4) + "\n C3 (" + ls_348 + ") | FLOATING +/- (TARGET): " + DoubleToStr(MyAccountProfit(g_magic_928), 2) + " (" + DoubleToStr(ld_92, 2) + ") | Target: " + DoubleToStr(ld_180, 4) + "/" + DoubleToStr(ld_188, 4) + "\n C4 (" + ls_356 + ") | FLOATING +/- (TARGET): " + DoubleToStr(MyAccountProfit(g_magic_932), 2) + " (" + DoubleToStr(ld_100, 2) + ") | Target: " + DoubleToStr(ld_220, 4) + "/" + DoubleToStr(ld_228, 4) + "\n\n C1 (LOT-SIZE): " + DoubleToStr(gd_1240, 2) + " | SP: " + DoubleToStr(gd_1208, 4) + " (" + ls_292 + ") | OPEN POS: " + MyOrdersTotal(g_magic_920) + " | B:S = " + BSOrdersTotal(g_magic_920, 0) + ":" + BSOrdersTotal(g_magic_920, 1) + "\n C2 (LOT-SIZE): " + DoubleToStr(gd_1248, 2) + " | SP: " + DoubleToStr(gd_1216, 4) + " (" + ls_300 + ") | OPEN POS: " + MyOrdersTotal(g_magic_924) + " | B:S = " + BSOrdersTotal(g_magic_924, 0) + ":" + BSOrdersTotal(g_magic_924, 1) + "\n C3 (LOT-SIZE): " + DoubleToStr(gd_1256, 2) + " | SP: " + DoubleToStr(gd_1224, 4) + " (" + ls_308 + ") | OPEN POS: " + MyOrdersTotal(g_magic_928) + " | B:S = " + BSOrdersTotal(g_magic_928, 0) + ":" + BSOrdersTotal(g_magic_928, 1) + "\n C4 (LOT-SIZE): " + DoubleToStr(gd_1264, 2) + " | SP: " + DoubleToStr(gd_1232, 4) + " (" + ls_316 + ") | OPEN POS: " + MyOrdersTotal(g_magic_932) + " | B:S = " + BSOrdersTotal(g_magic_932, 0) + ":" + BSOrdersTotal(g_magic_932, 1) + "\n ------------------------------------" + "\n FORCE CLOSE STATUS (Above/Below/Cycle.Num) | LMT.PRICE (iClose) : " + ls_380 + " / " + ls_388 + " / " + Force_CLOSE_CycleNum + " | ", DoubleToStr(Force_CLOSE_LimitPrice, 4) + " (" + DoubleToStr(iClose(NULL, 0, 0), 4) + ") " + "\n ENABLE FORCE CLOSE (C1-C4): " + ls_396 + " / " + ls_404 + " / ", ls_412 + " / " + ls_420, "\n\n FORCE MSP STATUS (Above/Below/Cycle.Num/MoveSP) | TOP/BOT PRICE | LMT.PRICE (iClose) : " + ls_444 + " / " + ls_452 + " / " + Force_MSP_CycleNum + " / " + ls_460 + " | " + DoubleToStr(Force_MSP_TopPrice, 4) + "/" + DoubleToStr(Force_MSP_BottomPrice, 4) + " | " + DoubleToStr(Force_MSP_LimitPrice, 4) + " (" + DoubleToStr(iClose(NULL, 0, 0), 4) + ") " + "\n ENABLE FORCE MSP (C1-C4): " + ls_468 + " / " + ls_476 + " / ", ls_484 + " / " + ls_492); return (0); } string Enabled(bool ai_0) { if (ai_0) return ("ACTIVE"); return ("Disable"); }