#property copyright "Copyright © 2009 Forex Trading Manuals" #property link "www.forextradingmanuals.com" extern double Lots = 1.0; extern bool RiskManagement = FALSE; extern double RiskPercent = 10.0; string gs_unused_96 = "________________________ ÂÐÅÌß ______________________"; int gi_104 = 0; int gi_108 = 7; int gi_112 = 17; string gs_unused_116 = "______________________ ÁÅÇÓÁÛÒÎÊ ___________________"; int gi_124 = 0; string gs_unused_128 = "_______________________ ÒÐÅÉËÈÍà ____________________"; int gi_136 = 0; int gi_140 = 0; int gi_144 = 0; int gi_148 = 5; string gs_unused_152 = "_____________________ ÏÀÐÀÁÎËÈÊ ____________________"; double gd_160 = 0.03; double gd_168 = 0.3; double gd_176 = 0.05; double gd_184 = 0.05; string gs_unused_192 = "______ ÊÎË-ÂÎ ÁÀÐΠÄËß ÐÀÑ×ÅÒÀ min/max _____________"; int gi_200 = 3; string gs_unused_204 = "____________ ÎÒÑÓÏ îò min/max (SL) __________________"; int gi_212 = 100; string gs_unused_216 = "____________________ ÔÈÁÎ - ÂÕÎÄ ____________________"; double gd_224 = 50.0; string gs_unused_232 = "____________________ ÔÈÁÎ - ÏÐÎÔÈÒ __________________"; double gd_240 = 161.0; string gs_unused_248 = "______________________________________________________"; int gi_256 = 0; extern bool Hedge = FALSE; bool gi_264 = FALSE; extern int Magic = 9958433; double g_point_272; int gi_unused_280; int gi_unused_284; int g_bars_288; int gi_292; bool gi_296; bool gi_300; int start() { if (Point == 0.00001) g_point_272 = 0.0001; else { if (Point == 0.001) g_point_272 = 0.01; else g_point_272 = Point; } if (g_bars_288 != Bars && (timecontrol(gi_108, gi_112) != 1 && gi_104 == 1) || gi_104 == 0) { g_bars_288 = Bars; gi_292 = EspionagePattern(); } if (gi_144 > 0) gi_292 = TrailingStop(); if (gi_124 > 0) gi_292 = BBU(); return (0); } int EspionagePattern() { int l_ticket_0; int l_ticket_4; double ld_8; double l_price_16; double l_price_24; double l_high_32; double ld_40; double ld_48; double ld_56; double l_isar_64 = iSAR(NULL, 0, gd_176, gd_184, 1); double l_isar_72 = iSAR(NULL, 0, gd_160, gd_168, 1); double l_isar_80 = iSAR(NULL, 0, gd_160, gd_168, 1); if (l_isar_72 > Bid && l_isar_64 < Bid) gi_296 = TRUE; if (l_isar_64 > Bid) gi_296 = FALSE; if (l_isar_72 < Bid && l_isar_64 > Bid) gi_300 = TRUE; if (l_isar_64 < Bid) gi_300 = FALSE; int l_datetime_88 = 0; if (gi_256 > 0) l_datetime_88 = TimeCurrent() + 60 * gi_256 - 5; bool l_bool_92 = RiskManagement; if (l_bool_92) { if (RiskPercent < 0.1 || RiskPercent > 100.0) { Comment("Invalid Risk Value."); return (0); } Lots = MathFloor(100.0 * (AccountFreeMargin() * AccountLeverage() * RiskPercent * g_point_272) / (Ask * MarketInfo(Symbol(), MODE_LOTSIZE) * MarketInfo(Symbol(), MODE_MINLOT))) * MarketInfo(Symbol(), MODE_MINLOT); } if (l_bool_92 == FALSE) { } if ((gi_264 == FALSE && l_isar_64 < Bid && l_isar_72 < Bid && gi_296 == TRUE) || (gi_264 && l_isar_64 > Bid && l_isar_72 > Bid && gi_300 == TRUE)) { gi_296 = FALSE; ld_40 = MaximumMinimum(0, gi_200); l_high_32 = High[1]; ld_48 = GetFiboUr(l_high_32, ld_40, gd_224 / 100.0); ld_56 = GetFiboUr(l_high_32, ld_40, gd_240 / 100.0); ld_8 = ld_48; l_price_16 = ld_40 - (gi_212 + gi_136) * g_point_272; l_price_24 = ld_56 + gi_140 * g_point_272; if (Ask - ld_8 < 5.0 * g_point_272 || Ask - l_price_16 < 5.0 * g_point_272 || l_price_24 - Ask < 5.0 * g_point_272) return (0); l_ticket_0 = OrderSend(Symbol(), OP_BUYLIMIT, Lots, NormalizeDouble(ld_8, Digits), 3, l_price_16, l_price_24, "FOREXESPIONAGE", Magic, l_datetime_88, Red); if (Hedge) { ld_8 = ld_48; l_price_16 = ld_56 + gi_140 * g_point_272; l_price_24 = ld_40 - (gi_212 + gi_136) * g_point_272; l_ticket_4 = OrderSend(Symbol(), OP_SELLSTOP, Lots, NormalizeDouble(ld_8, Digits), 3, l_price_16, l_price_24, "FOREXESPIONAGE", Magic, l_datetime_88, Blue); } if (l_ticket_0 < 0) { Print("EspionagePattern()- Îøèáêà óñòàíîâêè îòëîæåííûõ îðäåðîâ OP_BUYLIMIT. op " + ld_8 + " sl " + l_price_16 + " tp " + l_price_24 + " " + GetLastError()); return (-1); } gi_unused_280 = 0; } if ((gi_264 == FALSE && l_isar_64 > Bid && l_isar_72 > Bid && gi_300 == TRUE) || (gi_264 && l_isar_64 < Bid && l_isar_72 < Bid && gi_296 == TRUE)) { gi_300 = FALSE; l_high_32 = MaximumMinimum(1, gi_200); ld_40 = Low[1]; ld_48 = GetFiboUr(ld_40, l_high_32, gd_224 / 100.0); ld_56 = GetFiboUr(ld_40, l_high_32, gd_240 / 100.0); ld_8 = ld_48; l_price_16 = l_high_32 + (gi_212 + gi_136) * g_point_272; l_price_24 = ld_56 + gi_140 * g_point_272; if (ld_8 - Ask < 5.0 * g_point_272 || l_price_16 - Ask < 5.0 * g_point_272 || Ask - l_price_24 < 5.0 * g_point_272) return (0); l_ticket_0 = OrderSend(Symbol(), OP_SELLLIMIT, Lots, NormalizeDouble(ld_8, Digits), 3, l_price_16, l_price_24, "FOREXESPIONAGE", Magic, l_datetime_88, Blue); if (Hedge) { ld_8 = ld_48; l_price_16 = ld_56 + gi_140 * g_point_272; l_price_24 = l_high_32 + (gi_212 + gi_136) * g_point_272; l_ticket_4 = OrderSend(Symbol(), OP_BUYSTOP, Lots, NormalizeDouble(ld_8, Digits), 3, l_price_16, l_price_24, "FOREXESPIONAGE", Magic, l_datetime_88, Red); } if (l_ticket_0 < 0) { Print("EspionagePattern()- Îøèáêà óñòàíîâêè îòëîæåííûõ îðäåðîâ OP_SELLLIMIT. op " + ld_8 + " sl " + l_price_16 + " tp " + l_price_24 + " " + GetLastError()); return (-1); } gi_unused_284 = 0; } if ((gi_264 == FALSE && l_isar_72 > Bid && ChLimitOrder(1) > 0) || (gi_264 && l_isar_72 < Bid && ChLimitOrder(0) > 0)) if (Hedge == FALSE) l_ticket_0 = deletelimitorder(1); if ((gi_264 == FALSE && l_isar_72 < Bid && ChLimitOrder(0) > 0) || (gi_264 && l_isar_72 > Bid && ChLimitOrder(1) > 0)) if (Hedge == FALSE) l_ticket_0 = deletelimitorder(0); return (0); } int deletelimitorder(int ai_0) { int l_ord_delete_8; for (int li_4 = 1; li_4 <= OrdersTotal(); li_4++) { if (OrderSelect(li_4 - 1, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_BUYLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && ai_0 == 1) l_ord_delete_8 = OrderDelete(OrderTicket()); if (OrderType() == OP_SELLLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && ai_0 == 0) l_ord_delete_8 = OrderDelete(OrderTicket()); } } return (l_ord_delete_8); } int ChLimitOrder(int ai_0) { for (int li_4 = 1; li_4 <= OrdersTotal(); li_4++) { if (OrderSelect(li_4 - 1, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_BUYLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && ai_0 == 1) return (1); if (OrderType() == OP_SELLLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && ai_0 == 0) return (1); } } return (0); } double MaximumMinimum(int ai_0, int ai_4) { double ld_ret_16; int li_8 = 0; bool li_12 = FALSE; if (ai_0 == 0) { while (li_12 == FALSE) { ld_ret_16 = Low[iLowest(NULL, 0, MODE_LOW, ai_4, li_8)]; if (ld_ret_16 > Low[iLowest(NULL, 0, MODE_LOW, ai_4, li_8 + ai_4)]) { ld_ret_16 = Low[iLowest(NULL, 0, MODE_LOW, ai_4, li_8 + ai_4)]; li_8 += ai_4; } else { li_12 = TRUE; return (ld_ret_16); } } } if (ai_0 == 1) { while (li_12 == FALSE) { ld_ret_16 = High[iHighest(NULL, 0, MODE_HIGH, ai_4, li_8)]; if (ld_ret_16 < High[iHighest(NULL, 0, MODE_HIGH, ai_4, li_8 + ai_4)]) { ld_ret_16 = High[iHighest(NULL, 0, MODE_HIGH, ai_4, li_8 + ai_4)]; li_8 += ai_4; } else { li_12 = TRUE; return (ld_ret_16); } } } return (0); } double GetFiboUr(double ad_0, double ad_8, double ad_16) { double ld_28; int l_digits_24 = MarketInfo(Symbol(), MODE_DIGITS); ld_28 = NormalizeDouble(ad_8 + (ad_0 - ad_8) * ad_16, l_digits_24); return (ld_28); } int TrailingStop() { bool l_bool_4; for (int li_0 = 1; li_0 <= OrdersTotal(); li_0++) { if (OrderSelect(li_0 - 1, SELECT_BY_POS) == TRUE) { if (gi_144 > 0 && OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if (Bid - OrderOpenPrice() >= gi_144 * g_point_272 && gi_144 > 0 && Bid - g_point_272 * gi_144 > OrderStopLoss()) { if (Bid - g_point_272 * gi_144 - OrderStopLoss() >= gi_148 * g_point_272) { Print("ÒÐÅÉËÈÌ"); l_bool_4 = OrderModify(OrderTicket(), OrderOpenPrice(), Bid - g_point_272 * gi_144, OrderTakeProfit(), 0, Green); if (l_bool_4 == FALSE) return (-1); } } } } if (OrderSelect(li_0 - 1, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if (OrderOpenPrice() - Ask >= gi_144 * g_point_272 && gi_144 > 0 && OrderStopLoss() > Ask + gi_144 * g_point_272) { if (OrderStopLoss() - (Ask + gi_144 * g_point_272) > gi_148 * g_point_272) { Print("ÒÐÅÉËÈÌ"); l_bool_4 = OrderModify(OrderTicket(), OrderOpenPrice(), Ask + gi_144 * g_point_272, OrderTakeProfit(), 0, Green); if (l_bool_4 == FALSE) return (-1); } } } } } return (0); } int BBU() { bool l_bool_4; for (int li_0 = 1; li_0 <= OrdersTotal(); li_0++) { if (OrderSelect(li_0 - 1, SELECT_BY_POS) == TRUE) { if (gi_124 > 0 && OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderStopLoss() < OrderOpenPrice()) { if (Bid - OrderOpenPrice() >= gi_124 * g_point_272 && gi_124 > 0) { Print("ÏÎÐÀ  ÁåçóÁûòîê"); l_bool_4 = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 1.0 * g_point_272, OrderTakeProfit(), 0, Green); if (l_bool_4 == FALSE) return (-1); } } } if (OrderSelect(li_0 - 1, SELECT_BY_POS) == TRUE) { if (gi_124 > 0 && OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderStopLoss() > OrderOpenPrice() || OrderStopLoss() == 0.0) { if (OrderOpenPrice() - Ask >= gi_124 * g_point_272 && gi_124 > 0) { Print("ÏÎÐÀ  ÁåçóÁûòîê"); l_bool_4 = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - 1.0 * g_point_272, OrderTakeProfit(), 0, Green); if (l_bool_4 == FALSE) return (-1); } } } } return (0); } int timecontrol(int ai_0, int ai_4) { if (Hour() >= ai_0 && Hour() <= ai_4) return (0); return (1); }