Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 24.05.20
stoffel stoffel ist offline
Neues Mitglied
 
Registriert seit: Apr 2019
Beiträge: 20
stoffel befindet sich auf einem aufstrebenden Ast
Standard

moin @ all,

ich habe jetzt den Code von Indikator-Trading probiert. Keine Fehlermeldung . Anschließend habe ich nach und nach den Rest meiner
Funktion hinzugefügt und festgestellt das der Fehler NICHT bei OrderDelete zu suchen ist ! Sondern schon vorher beim Schließen der offenen Orders.

In dem Teil hatte ich bei erfolgreichem schließen zwei weitere Funktionen aufgerufen.

Code:
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,intMaxSlippage,White)) {
               Print(__FUNCTION__," ERROR OP_BUY ",GetLastError());
               continue;
            } else {
               if(pLable) {
                  ProfitLable(__FUNCTION__);
               }
               if(Optimizer) {
                  VirtualTrades(__FUNCTION__+"()"+"()",OrderTicket(),OrderType(),_Symbol,TimeToStr(OrderOpenTime(),TIME_MINUTES),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),"22:55",OrderClosePrice(),OrderLots(),"Life");
               }
            }
Die Funktion 'ProfitLable(__FUNCTION__)' verursacht den Fehler. Da sie aber funktioniert und der Fehler nicht ständig auf tritt bin ich soweit wie vorher, ich habe keine Ahnung

Vielleicht kann mal jemand über diese Funktion schauen und mir sagen was ich falsch mache

Code:
void ProfitLable(string f)
{
   if(debug)
      Print(">>>",f+"()","::",__FUNCTION__+"()");
   color clr;
   for(int y=OrdersHistoryTotal()-1; y>=0; y--) {
      if(OrderSelect(y,SELECT_BY_POS,MODE_HISTORY)) {
         if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol())) {
            if(OrderCloseTime()>0) {
               lastTicket= OrderTicket();
               int plshift = iBarShift(_Symbol,_Period,OrderCloseTime());
               datetime plshift2 = iTime(_Symbol,0,plshift+7);
               if(OrderProfit()>0)clr=clrOlive;
               else clr=clrRed;
               if(OrderType()==OP_BUY) {
                  if(OrderProfit()>0) {
                     drawLabel("ProfitText"+(string)lastTicket,DoubleToString(OrderProfit(),2),High[plshift]+(40*_Point),clr,plshift,9);
                  } else {
                     drawLabel("ProfitText"+(string)lastTicket,DoubleToString(OrderProfit(),2),Low[plshift]-(30*_Point),clr,plshift,9);
                  }
               }
               if(OrderType()==OP_SELL) {
                  if(OrderProfit()<0) {
                     drawLabel("ProfitText"+(string)lastTicket,DoubleToString(OrderProfit(),2),High[plshift]+(30*_Point),clr,plshift,9);
                  } else {
                     drawLabel("ProfitText"+(string)lastTicket,DoubleToString(OrderProfit(),2),Low[plshift]-(40*_Point),clr,plshift,9);
                  }
               }
               lastTicket=0;
            }
         }
      }
   }
   return;
}
Screenshot im Anhang

Schon mal vielen Dank an alle.
VG
stoffel
Angehängte Grafiken
Dateityp: png profitlable.png (23,4 KB, 2x aufgerufen)