Trailing Stops und Trailing Profit - Seite 7

 
Arav007:

Hier ist sie.

Mit freundlichen Grüßen


Siehe https://www.mql5.com/en/forum/150195/page6#924239 für einen besseren Weg
 

Ich habe es gesehen und auch getestet.

Es löst auch nicht das Problem mit"Stop Loss" und "Least Profit Locking", die ich gerade brauchen, um diese EA vollständig zu machen.

 

Dies ist der Anfang Ihres Codes

if(OrdersTotal()>0)
   {//----------------------------------------------------------------->1
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
     {//--------------------------------------------------------------->2    
     if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;
     if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1)
       {
       if (OrderProfit()<0.03)
         {
         if(OrderType()==OP_BUY)
           {  
           bOrderClosed = closeBuyOrder(iOrderType_Buy); //Closing Buy order    
           if(bOrderClosed)
             {
             Print("Buy Order 1 Closed");
             }
            else
               {
               iLastError = GetLastError();                                       
               }//end else if(bOrderClosed)
           }//end if(OrderType()==OP_BUY)
       if(OrderType()==OP_SELL)
          {  
          bOrderClosed = closeSellOrder(iOrderType_Sell); //Closing Sell order
          if(bOrderClosed)
            {
            Print("Sell Order 1 Closed");
            }
           else
              {
              iLastError = GetLastError();
              }//end else if(bOrderClosed)
          }//end if(OrderType()==OP_SELL)
        }// if (OrderProfit()<0.03)                          
      }// if(OrderSymbol() == Symbol() && OrderMagicNumber() ==Magic_Number_1)

erkläre, was dieser Code macht und

warum er dies tut.... und wann dies geschieht

Was soll dieser Code bewirken?

Kennen Sie iLastError, wenn ein Fehler aufgetreten ist?

 

ohh, danke. Sie haben mir die Augen geöffnet.

Es schließt alle offenen Aufträge, wenn es ausgeführt wird, weil die Bedingung ist:

if (OrderProfit()<0.03 )

Also werden alle gerade geöffneten Aufträge natürlich geschlossen.

Mein Ziel war es, wenn ein Handel in den Gewinn geht, sagen wir $0.1 und dann, wenn dieser Handel zurückkehrt, wird er mit dem geringsten Gewinn von sagen wir $0.01 geschlossen.

Wahrscheinlich ist das mit der Funktion'OrderProfit()' nicht möglich.

Ich müsste die Trailing-Stops-Funktion verwenden.

 
Arav007:

Ich habe es gesehen und auch getestet.

Es löst auch nicht das Problem mit "Stop Loss" und "Least Profit Locking", die ich gerade brauche, um diesen EA vollständig zu machen.


Was wollten Sie codieren???

Welches Problem gibt es mit Stoploss

bei Breakeven haben Sie Least Profit Locking für die ersten beiden Trades, wie Sie es wollten, ..... dachte ich

 
deVries:


was wollten Sie codieren???

Welches Problem gibt es mit dem Stoploss?

bei Breakeven hat man die geringste Gewinnsperre für die ersten beiden Trades, wie Sie es wollten, ..... dachte ich


Bitte entschuldigen Sie mich.

Ich konnte die Parameter nicht richtig einstellen.

Ja, das ist es! Vielen Dank dafür.

SL verschoben für die ersten zwei Trades und der TP auch.

Ich habe jetzt diese Einstellungen verwendet:

extern double BreakEven =5;

extern double BreakEvenSL =1;

extern double TrailingStop =10;

extern double TrailingStep =3;

Nur um das Konzept zu verdeutlichen:

Wenn sich der Markt 5 Pips im Gewinn vom Eröffnungskurs bewegt, wird der Stop Loss auf 1 Pip Gewinn gesetzt. Dann beginnt die Funktion des Trailing Stop.

Wenn sich der Markt bei einem Trailing Stop von 10 vom Eröffnungskurs um 10 Pips im Gewinn bewegt, wird der Stop Loss auf 3 Pips im Gewinn gesetzt, richtig?

Und wenn der Markt 10 Pips mehr erreicht, d.h. insgesamt 20 Pips, liegt der SL bei 6 Pips im Gewinn?

Mit freundlichen Grüßen