Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 23.05.20
Benutzerbild von Indikator-Trading
Indikator-Trading Indikator-Trading ist offline
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Hallo, in dem Code, welchen du geschrieben hast, werden ja nur PendingStop Orders behandelt. Das passt dann nicht zu dem Log den du als letztes angehängt hast.

Pendingorders mussen gelöscht werden OrderDelete(), MarketOrders müssen geschlossen werden OrderClose()

Hier meine CloseAllOrders Funktion, allerdings ohne gutes Error Handling:

Code:
void CloseAllOrders(int Slippage_local,int MagicNumber_local)
  {
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      if((OrderMagicNumber()!=MagicNumber_local) || (OrderSymbol()!=Symbol()))
         continue;
      //--- check order type
      if(OrderType()==OP_BUY)
        {
         if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage_local,White))
            Print(__FUNCTION__," ERROR OP_BUY ",GetLastError());

         continue;
        }
      if(OrderType()==OP_SELL)
        {
         if(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage_local,White))
            Print(__FUNCTION__," ERROR OP_SELL ",GetLastError());
         continue;
        }
      if(OrderType()>1) //OP_BUYSTOP OP_SELLSTOP OP_BUYLIMIT OP_SELLLIMIT
        {
         if(!OrderDelete(OrderTicket(),White))
            Print(__FUNCTION__," ERROR OP_BUYSTOP OP_SELLSTOP OP_BUYLIMIT OP_SELLLIMIT ",GetLastError());
         continue;
        }
     }
  }