Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 28.11.17
Trader93 Trader93 ist offline
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 16
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

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);
}