Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 23.05.20
stoffel stoffel ist offline
Neues Mitglied
 
Registriert seit: Apr 2019
Beiträge: 20
stoffel befindet sich auf einem aufstrebenden Ast
Standard PO über expiration gelöscht und noch immer in OrdersTotal()?

seit gegrüßt,

Ich habe in meinem EA eine Funktion die zum Tagesende alle Positionen löscht/schließt. Jetzt bekommen ich immer die Fehlermeldung
'Unknown Ticket 1 for OrderDelete Function'. Das Ticket 1 ist eine Pending Order die über expiration gelöscht wurde.

Mit 'index = OrdersTotal()' bekomme ich die Anzahl der offenen Orders und der Pending Orders. Soweit klar. Aber wenn gelöscht (deleted due expiration) sollte diese Order nicht mehr unter OrdersTotal() auftauchen!?

Code:
   void CloseAllOpenPositions(string f, int intMaxSlippage) {
      if(debug)
         Print(">>>",f,"::",__FUNCTION__+"()");
      bool checkOrderClose=true;
      int index=OrdersTotal()-1;
      while(index>=0) {
         if(OrderSelect(index,SELECT_BY_POS,MODE_TRADES)) {
            Print(f,"::Close all Positions: ",TimeCurrent());
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
               if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
                  checkOrderClose=OrderDelete(OrderTicket(),CLR_NONE);
                  if(!checkOrderClose) {
                     int errorCode=GetLastError();
                     if(errorCode==1 || errorCode==2 || errorCode==5 || errorCode==6 || errorCode==64 || errorCode==65 || errorCode==132 || errorCode==133 || errorCode==139) {
                        Print(__FUNCTION__," Error: delete pendingOrder ",OrderTicket(),"|",OrderComment(),"|",ErrorDescription(errorCode));
                     }
                  }
               }
            }
         }
         index--;
      }
Verstehe ich etwas falsch
VG
stoffel

MT4
build 1260
24.01.2020
Angehängte Grafiken
Dateityp: png OrderDelete.png (8,1 KB, 5x aufgerufen)