Ich muss ein wenig zurück rudern. Wenn ich das "== true" entferne, führt dies zu Fehlern im Programm.
Aber deinen Pseudocode (danke dafür) habe ich versucht umzusetzen.
Zuerst das Positive: Der EA macht die Tradeanzahl die ich erwartet habe. ABER: Der EA macht jetzt aber mehr Verluste?! Obwohl der SL_prozent mit 25definiert wird. Lt. Strategietester ist der größte Verlusttrade bei 0.1 Lot bei 269 EUR, während das reine schließen einen max. Verlust von 87,50 EUR generiert. Irgendwo ist da noch der Wurm drin, wenn die Sicherheitsmaßnahme das Loss quasi mehr als verdreifacht.
Ideen, was ich falsch mache?
Code:
{
.
.
.
// Trendwechsel von Long auf Short
if (OrderSelect(LongOrder,SELECT_BY_TICKET)== true)
{
if((MAkurz<MAlang) == true)
{
//Order Closing
bool LongOrderGeclosed = OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
if (LongOrderGeclosed==true) LongOrder=0;
}
else
{
//SL
if (OrderCloseTime()== 0 && OrderStopLoss()==0)
{
double StopLoss= NormalizeDouble(OrderOpenPrice()/(1+(SL_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
}
}
//Trendwechsel von Short auf Long
if (OrderSelect(ShortOrder,SELECT_BY_TICKET)== true)
{
if ((MAkurz>MAlang)== true)
{
//Order Closing
bool ShortOrderGeclosed = OrderClose(ShortOrder,OrderLots(),Ask,10,Green);
if (ShortOrderGeclosed==true) ShortOrder=0;
}
else
{
//SL
if (OrderCloseTime()== 0 && OrderStopLoss()==0)
{
double StopLoss= NormalizeDouble(OrderOpenPrice()*(1+(SL_prozent/100)),Digits);
bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
}
}
}
}
.
.
.
return(0);
}