|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Trailingstop nach x% des geplantem TP starten
Hallo zusammen,
leider komme ich gerade bei dem Problem nicht weiter, dass ich den Trailingstop erst nach einem bestimmten Prozentsatz des anvisierten Takeprofits scharf schalte. Dia Abfrage an sich ist kein Problem, der Trailingstop startet auch. Leider springt er aber auch immer wieder zurück und sichert somit nicht so ab, wie ich es mir vorgestellt habe Der Ansatz ist, dass z.B. nach 80% im Gewinn der Trailingstop sehr eng nachgezogen wird... hier der Code: Code:
//+------------------------------------------------------------------+ //| Trailling Stop | //+------------------------------------------------------------------+ void dtrailing() { double ATR = iATR(NULL,Timeframe_ATRTS,ATRPeriodTS,1); double ATRSL = NormalizeDouble(ATR,Digits); for(int i = OrdersTotal()-1; i >=0; i--) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderMagicNumber()==Magic) { if (OrderType() == OP_BUY) { SLPT = Bid -ATRSL- Points * Point; SLPT = NormalizeDouble(SLPT,Digits); if (Bid - OrderOpenPrice() >= (( OrderTakeProfit() - OrderOpenPrice() ) /100)*StartTrailing) { if (OrderModify(OrderTicket(),OrderOpenPrice(),SLPT,OrderTakeProfit(),OrderExpiration())) Print(__FUNCTION__,"Stoploss von Order>",OrderTicket(),"angepasst!"); } } else if (OrderType() == OP_SELL) { SLPT = Ask +ATRSL+ Points * Point; SLPT = NormalizeDouble(SLPT,Digits); if (OrderOpenPrice() - Ask >= (( OrderOpenPrice() - OrderTakeProfit() ) /100)*StartTrailing) { if (OrderModify(OrderTicket(),OrderOpenPrice(),SLPT,OrderTakeProfit(),OrderExpiration())) Print(__FUNCTION__,"Stoploss von Order>",OrderTicket(),"angepasst!"); } } } } } |
|
|||
Guten Morgen Forward,
nicht nur OrderOpenPrice() vergleichen. Sondern auch den OrderStoppLoss (). (if OrderStopLoss() ...) Bei richtiger Anwendung sollte der StoppLoss nicht mehr "zurück springen". Gruß TraumExpert |
Lesezeichen |
|
|