
29.09.22
|
Neues Mitglied
|
|
Registriert seit: Jan 2018
Beiträge: 8
|
|
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!");
}
}
}
}
}
|