Warum sollte der SL, wenn er schon über dem Open-Kurs der Order liegt wieder zurück auf den Open-Preis gezogen werden. Das sieht man sehr schön an dem Auszug aus dem Logfile:
2021.10.17 19:25:40.698 2021.05.10 20:34:35 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15362.9 tp: 15442.7 ok
2021.10.17 19:25:40.698 2021.05.10 20:34:10 163 Long,BE,Modi.
2021.10.17 19:25:40.698 2021.05.10
20:34:10 modify #1 buy 0.10 .DE40Cash at 15352.7
sl: 15352.7 tp: 15442.7 ok
2021.10.17 19:25:40.698 2021.05.10 20:33:45 179 Long,TSL,Modi
2021.10.17 19:25:40.698 2021.05.10 20:33:45 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15361.6 tp: 15442.7 ok
2021.10.17 19:25:40.698 2021.05.10 20:33:20 163 Long,BE,Modi.
2021.10.17 19:25:40.698 2021.05.10 20:33:20 modify #1 buy 0.10 .DE40Cash at 15352.7 sl: 15352.7 tp: 15442.7 ok
Um 20:34:10 wird der Sl wieder auf 15352.7 zurückgesetzt.
Die Zeilen müsste demnach lauten:
Code:
if (BreakEven > 0 && OrderStopLoss() < OrderOpenPrice())
{
if (OrderOpenPrice()+ Ask > Point*BreakEven )
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrRed);
Print("163"); //nur zum Verfolgen
}
}
Ebenso für Short:
Code:
if (BreakEven > 0 && OrderStopLoss() > OrderOpenPrice())
{
if (Bid < OrderOpenPrice() - BreakEven* _Point)
{
OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, clrRed);
Print("214"); //nur zum Verfolgen
}
}
traderdoc