Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 25.05.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard Trailingstop herabsetzen

Ich bin mir nicht ganz im Klaren, wie ich am besten einen Trailingstop decrementor einbaue.
Beispiel: Eine Long Order läuft, der erste Trailingabstand ist 1000.
Aufgabe: Geht der Kurs weiter hoch, soll der Trailingabstand vermindert werden von 1000 auf 800 usw.

Code bisher:
Code:
// === user input
extern int DefaultTS = 1000; // default Trailing Stop (2000)
extern int DecreasTs =  200; // Trailing Stop descrease (200)
// === internal global
int LastTS = DefalutTS;      // initial Decreased value

// === die Trailing Funktion
   double ordprofit=0; // orders profit size to begin trailing
   double rq_price=0;  // required price for stop loss setting (Bid or Ask)
   double rq_trail=0;  // distance of trailing stop to price
   
   rq_trail=NormalizeDouble(LastTS*_Point,_Digits);          //Normalize

   // === innerhalb der OrderSelect()
   ordprofit=2*( OrderCommission()+OrderSwap() );            //CoverCostsCash

   // ======= Buy Orders =======
   if(Type==OP_BUY && OrderType()==OP_BUY)                   //Type wird der Funktion übergeben
   {
      // ===>while
      rq_price=MarketInfo(_Symbol,MODE_BID);                 //required price            
      if(   OrderProfit()>ordprofit                          //ProfitCoversCosts
         && OrderStopLoss()<rq_price-rq_trail )              //SLBelow Bid-TrailDist
      {
         if(OrderModify(OrderTicket(),OrderOpenPrice(),
                        rq_price-rq_trail,                   //ChangeSL:Bid-TSdist
                        OrderTakeProfit(),0,ColArrowShort) )
            if(LastTS>DecreaseTS) LastTS=LastTS-DecreasTs;   //NewValueUntilMinimum
         else
            Sleep(ErrorInterval);                            //FailWait
		// <=== end while
      } //ProfitCoversCosts
   } //BuyOrder
Frage: Gibt es eine Möglichkeit (ist das überhaupt sinnvoll ), die Trailing Funktion erst dann zu verlassen, wenn wir mit dem Vermindern fertig sind?
Ich denke da an so etwas wie while(LastTS>DecreaseTS) ...
Wäre nett, wenn Ihr dazu etwas anzumerken hättet. Danke. AVT