//+------------------------------------------------------------------+ //| CloseOnCandle.mq4 | //+------------------------------------------------------------------+ //---- input parameters input int CloseCandle = 4; // Close On Candle Number: input bool UseCurrSymbol = false; // Current Symbol Only? input int Slippage = 3; // Slippage: void OnTick() { bool closed; datetime ordertime; int ordercandleindex; double pAsk,pBid; for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (UseCurrSymbol && OrderSymbol()!=_Symbol) continue; pAsk=MarketInfo(OrderSymbol(),MODE_ASK); pBid=MarketInfo(OrderSymbol(),MODE_BID); ordertime=OrderOpenTime(); ordercandleindex=iBarShift(OrderSymbol(),PERIOD_CURRENT,ordertime,false); if(ordercandleindex>=CloseCandle-1) { if (OrderType()==OP_BUY) { closed=OrderClose(OrderTicket(), OrderLots(), pBid, Slippage, clrNONE); if(!closed) { Print(" BUY OrderClose Failed. Ticket: ", OrderTicket(), GetLastError()); Sleep(500); } else { Print(" BUY OrderClose Success. Ticket: ", OrderTicket()); PlaySound("ok.wav"); } } else if (OrderType()==OP_SELL) { closed=OrderClose(OrderTicket(), OrderLots(), pAsk, Slippage, clrNONE); if(!closed) { Print(" SELL OrderClose Failed. Ticket: ", OrderTicket(), GetLastError()); Sleep(500); } else { Print(" SELL OrderClose Success. Ticket: ", OrderTicket()); PlaySound("ok.wav"); } } } } } } //+------------------------------------------------------------------+