#property copyright "Ahmad Abedini (a_abdeiny@yahoo.com)" #property link "www.fxparsun.net" extern int TakeProfit = 100; extern double Lots = 0.01; extern double myLimit = 0.0; extern double profitflag = 0.0; double gd_104 = 0.0; double g_ord_open_price_112 = 0.0; double g_ord_open_price_120 = 0.0; int init() { return (0); } int deinit() { return (0); } int start() { int l_ord_total_0; int l_count_4; string ls_8; double ld_16; int l_ticket_32; int l_count_36; int l_count_40; int l_count_44; int l_count_48; int l_count_52; int l_count_56; double l_ord_lots_60; double l_ord_lots_68; double ld_76; double ld_84; double l_ord_takeprofit_92; double l_ord_takeprofit_100; if (Year() <= 2009) { if (Month() > 11 && Day() > 15) return; gd_104 = Ask - Bid; l_ord_total_0 = OrdersTotal(); l_count_4 = 0; ls_8 = Symbol(); for (int l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { OrderSelect(l_pos_24, SELECT_BY_POS); if (StringTrimRight(StringTrimLeft(OrderSymbol())) == StringTrimRight(StringTrimLeft(ls_8))) l_count_4++; } for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { OrderSelect(l_pos_24, SELECT_BY_POS); if (OrderType() == OP_BUYSTOP && OrderComment() == "halt" && OrderSymbol() == ls_8) return; } for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { OrderSelect(l_pos_24, SELECT_BY_POS); if (OrderType() == OP_BUYSTOP && OrderComment() == "stop" && l_count_4 > 1 && OrderSymbol() == ls_8) { for (int l_pos_28 = 0; l_pos_28 < l_ord_total_0; l_pos_28++) { OrderSelect(l_pos_28, SELECT_BY_POS); if (OrderSelect(l_pos_28, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_SELLLIMIT && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); if (OrderType() == OP_BUY && OrderSymbol() == ls_8) OrderClose(OrderTicket(), OrderLots(), Bid, 5); if (OrderType() == OP_SELL && OrderSymbol() == ls_8) OrderClose(OrderTicket(), OrderLots(), Ask, 5); if (OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP && OrderComment() != "stop" && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); } } } if (OrderType() == OP_BUYSTOP && OrderComment() == "stop" && l_count_4 == 1 && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); } if (l_count_4 == 0) { l_ticket_32 = -1; for (l_ticket_32 = -1; l_ticket_32 < 0; l_ticket_32 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 7, 0, Ask - TakeProfit * Point, "Run", 16384, 0, Green)) { } l_ticket_32 = OrderSend(Symbol(), OP_BUYSTOP, 3.0 * Lots, Bid + TakeProfit * Point, 5, 0, Bid + (TakeProfit * 2 + 5) * Point, "Run", 16384, 0, Green); return (0); } l_count_36 = 0; l_count_40 = 0; l_count_44 = 0; l_count_48 = 0; l_count_52 = 0; l_count_56 = 0; l_ord_lots_60 = 0; l_ord_lots_68 = 0; ld_76 = 0; ld_84 = 0; for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { OrderSelect(l_pos_24, SELECT_BY_POS); if (OrderType() == OP_SELL && OrderSymbol() == ls_8) { l_count_40++; ld_84 += OrderLots(); ld_16 += OrderProfit(); if (OrderTakeProfit() > l_ord_lots_68) l_ord_lots_68 = OrderLots(); } if (OrderType() == OP_BUY && OrderSymbol() == ls_8) { l_count_36++; ld_76 += OrderLots(); ld_16 += OrderProfit(); if (OrderTakeProfit() > l_ord_lots_60) l_ord_lots_60 = OrderLots(); } if (OrderType() == OP_SELLSTOP) l_count_44++; if (OrderType() == OP_BUYSTOP && OrderSymbol() == ls_8) l_count_48++; if (OrderType() == OP_BUYLIMIT && OrderSymbol() == ls_8) l_count_56++; if (OrderType() == OP_SELLLIMIT && OrderSymbol() == ls_8) l_count_52++; } if (l_count_4 > 3 && ld_16 > 5.0) return (OrderSend(Symbol(), OP_BUYSTOP, 0.01, 2, 5, 0, 0, "stop", 16384, 0, Green)); else { l_ord_takeprofit_92 = 2; g_ord_open_price_120 = 2; if (l_count_40 > 0) { for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { if (OrderSelect(l_pos_24, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_SELL && OrderSymbol() == ls_8) { if (l_ord_takeprofit_92 > OrderTakeProfit()) l_ord_takeprofit_92 = OrderTakeProfit(); if (g_ord_open_price_120 < OrderOpenPrice()) g_ord_open_price_120 = OrderOpenPrice(); } } } for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { if (OrderSelect(l_pos_24, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_SELL && OrderSymbol() == ls_8) if (OrderTakeProfit() != l_ord_takeprofit_92) OrderModify(OrderTicket(), OrderOpenPrice(), 0, l_ord_takeprofit_92, 0, Blue); if (OrderType() == OP_BUY && OrderSymbol() == ls_8) if (OrderTakeProfit() != l_ord_takeprofit_92) OrderModify(OrderTicket(), OrderOpenPrice(), l_ord_takeprofit_92, OrderTakeProfit(), 0, Blue); } } } l_ord_takeprofit_100 = 0; g_ord_open_price_112 = 0; if (l_count_36 > 0) { for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { if (OrderSelect(l_pos_24, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_BUY && OrderSymbol() == ls_8) { if (l_ord_takeprofit_100 < OrderTakeProfit()) l_ord_takeprofit_100 = OrderTakeProfit(); if (OrderOpenPrice() < g_ord_open_price_112) g_ord_open_price_112 = OrderOpenPrice(); } } } for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { if (OrderSelect(l_pos_24, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_BUY && OrderSymbol() == ls_8) if (OrderTakeProfit() != l_ord_takeprofit_100) OrderModify(OrderTicket(), OrderOpenPrice(), 0, l_ord_takeprofit_100, 0, Blue); if (OrderType() == OP_SELL && OrderSymbol() == ls_8) if (OrderTakeProfit() != l_ord_takeprofit_100) OrderModify(OrderTicket(), OrderOpenPrice(), l_ord_takeprofit_100 + gd_104, OrderTakeProfit(), 0, Blue); } } } if (l_count_48 == 0 && ld_76 > ld_84 && l_count_44 == 0) { l_ticket_32 = OrderSend(Symbol(), OP_SELLSTOP, 2.0 * ld_76 - ld_84 + Lots, Bid - TakeProfit * Point, 5, 0, Bid - (TakeProfit * 2 + 5) * Point, "Run", 16384, 0, Green); return (0); } if (l_count_44 == 0 && ld_76 < ld_84 && l_count_48 == 0) { l_ticket_32 = OrderSend(Symbol(), OP_BUYSTOP, 2.0 * ld_84 - ld_76 + Lots, Ask + TakeProfit * Point, 5, 0, Ask + (TakeProfit * 2 + 5) * Point, "Run", 16384, 0, Green); return (0); } if (l_count_40 == 0 && l_count_36 == 0) { for (l_pos_24 = 0; l_pos_24 < l_ord_total_0; l_pos_24++) { if (OrderSelect(l_pos_24, SELECT_BY_POS) == TRUE) { if (OrderType() == OP_SELLLIMIT && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYLIMIT && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); if (OrderType() == OP_BUY && OrderSymbol() == ls_8) OrderClose(OrderTicket(), OrderLots(), Bid, 5); if (OrderType() == OP_SELL && OrderSymbol() == ls_8) OrderClose(OrderTicket(), OrderLots(), Ask, 5); if (OrderType() == OP_SELLSTOP && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); if (OrderType() == OP_BUYSTOP && OrderSymbol() == ls_8) OrderDelete(OrderTicket()); } } } else { } } } return (0); }