#property copyright "Андрей, ialexdom@mtu-net.ru" #property link "http://www.ChessServer.ru" int gi_76 = 0; double gd_80; int g_period_88 = 26; int g_period_92 = 200; void init() { if (Period() > PERIOD_D1) Alert("В этом таймфрейме советник не работает!"); } void start() { int l_cmd_68; int l_ticket_72; if (!IsDemo()) { Alert("Советник работает только на демо счете!"); return; } int l_count_0 = 0; int l_ord_total_4 = OrdersTotal(); string l_symbol_8 = Symbol(); double l_minlot_16 = MarketInfo(l_symbol_8, MODE_MINLOT); double l_iadx_24 = iADX(NULL, 0, g_period_88, PRICE_WEIGHTED, MODE_MAIN, 0); double l_iadx_32 = iADX(NULL, 0, g_period_88, PRICE_WEIGHTED, MODE_MAIN, 1); double ld_40 = iADX(NULL, 0, g_period_88, PRICE_WEIGHTED, MODE_PLUSDI, 0) - iADX(NULL, 0, g_period_88, PRICE_WEIGHTED, MODE_MINUSDI, 0); double ld_48 = iMA(NULL, 0, g_period_92, 0, MODE_LWMA, PRICE_WEIGHTED, 0) - iMA(NULL, 0, g_period_92, 0, MODE_LWMA, PRICE_WEIGHTED, 1); double ld_56 = (High[0] + Low[0] + 2.0 * Close[0]) / 4.0 - (High[1] + Low[1] + 2.0 * Close[1]) / 4.0; for (int li_64 = l_ord_total_4; li_64 > 0; li_64--) { if (OrderSelect(li_64 - 1, SELECT_BY_POS) == TRUE) { l_cmd_68 = OrderType(); if (OrderSymbol() != l_symbol_8 || l_cmd_68 < OP_BUY || l_cmd_68 > OP_SELL) continue; l_count_0++; l_ticket_72 = OrderTicket(); RefreshRates(); if (!l_cmd_68 && ld_40 < 0.0) OrderClose(l_ticket_72, l_minlot_16, Bid, 0); else if (l_cmd_68 && ld_40 > 0.0) OrderClose(l_ticket_72, l_minlot_16, Ask, 0); } } if (!l_count_0) gd_80 = 0; if (gi_76 != Time[0] && l_iadx_24 > MathMax(l_iadx_32, gd_80)) { RefreshRates(); if (ld_40 > 0.0 && ld_56 > 0.0 && ld_48 > 0.0) { while (OrderSend(l_symbol_8, OP_BUY, l_minlot_16, Ask, 0, 0, 0) == 0) FunError(); gi_76 = Time[0]; gd_80 = l_iadx_24; } else { if (ld_40 < 0.0 && ld_56 < 0.0 && ld_48 < 0.0) { while (OrderSend(l_symbol_8, OP_SELL, l_minlot_16, Bid, 0, 0, 0) == 0) FunError(); gi_76 = Time[0]; gd_80 = l_iadx_24; } } } } void FunError() { Sleep(50); RefreshRates(); } void deinit() { }