Einzelnen Beitrag anzeigen
  #14 (permalink)  
Alt 01.07.20
Michael_ Michael_ ist offline
Mitglied
 
Registriert seit: Jun 2020
Beiträge: 41
Michael_ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Das umgeht man, indem immer zuerst nach der Order gefragt (gesucht) wird, wenn z.B. getrailt werden soll. Ist die Order nicht mehr im Kasten der offenen Orders, ja dann braucht (kann) auch nicht mehr getrailt werden.

traderdoc
Hallo traderdoc,

naja das ist ja das merkwürdige: Ich frage zuerst mit einer if-Schleife ab, ob die Order noch vorhanden ist, und erst dann frage ich in dieser Schleife, ob der Trailing-Stop notwendig ist.

Hier der Code:

HTML-Code:
if(OrderSelect(LongOrder1,SELECT_BY_TICKET)==true)
   { 
      //Trailing-Stop für LongOrder1:

      static datetime timestamp;
      datetime time = iTime(NULL, PERIOD_M1, 0);                        //Nachziehen des Trailing Stops nur bei jeder neuen M1-Kerze und NICHT jedem Tick!
      if(timestamp != time)
      {
      timestamp = time;

       double norm_iHigh = NormalizeDouble(iHigh(NULL,0,1),1);
                  
       double Initial_SL_Long = (OrderTakeProfit() - OrderOpenPrice()) * SL_Prozent/TP_Prozent1;           //Ursprünglicher SL in Punkten
       double TS_Long_Punkte = Initial_SL_Long * TS_Faktor;                                                //Trailing Stop in Punkten;
       double TS_Long_Kurs = NormalizeDouble(OrderStopLoss() + TS_Long_Punkte,1);

        if(OrderType() == OP_BUY && norm_iHigh > TS_Long_Kurs)
         {
  	     bool TS_Long = OrderModify(OrderTicket(), OrderOpenPrice(), norm_iHigh - TS_Long_Punkte, OrderTakeProfit(), 0);
         }
      }
   }
Mach ich da was falsch?