//+------------------------------------------------------------------+ //| All Position Close | //+------------------------------------------------------------------+ #include #include int start() { if (IsTradeAllowed()==false) { Alert("Allow live trading is OFF. Check Option."); return; } if(MessageBox("Close All position?", "YES", MB_YESNO|MB_ICONQUESTION) != IDYES) return; bool result; double price; int cmd,error; int total=OrdersTotal(); for(int i=total-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ==false) continue; cmd=OrderType(); if(cmd > 1) continue; while(true) { if(cmd==OP_BUY) price=Bid; else price=Ask; if(OrderClose(OrderTicket(),OrderLots(),price,1,CLR_NONE) == TRUE) break; else { error=GetLastError(); Print("LastError = ",ErrorDescription(GetLastError()) ); if(error==135) RefreshRates(); else break; } } } return; }