Trailing Stops und Trailing Profit - Seite 4

 

Ja, ich habe verstanden. Es ist nicht möglich zu vergleichen, da cnt einen Wert wie 3,2,1 hat, während die Ticketnummer etwas anderes ist.

if(OrdersTotal()>0){

        for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

        

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

                Order Ticket=OrderTicket(); 

                

                if(OrderType()==OP_SLL){ 

                if( Order Ticket== Sell_Order_Ticket_1){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_2){ Do the Normal Trailing Stop}

                if( Order Ticket== Sell_Order_Ticket_3){ Don't move the Stop Loss} 

Kann ich die Ticketnummer auf diese Weise vergleichen?

Mit freundlichen Grüßen

 
Arav007:

Ja, ich habe verstanden. Es ist nicht möglich zu vergleichen, da cnt einen Wert wie 3,2,1 hat, während die Ticketnummer etwas anderes ist.

Kann ich die Ticketnummer auf diese Weise vergleichen?

Mit freundlichen Grüßen

nein
Wenn Ihr PC neu gestartet werden muss, geht der Wert Sell_Order_Ticket_1 (2 und 3 auch) verloren

Prüfen Sie orderopenprice und ordertakeprofit

 
deVries:

keine
Wenn Ihr PC neu gestartet werden muss, geht der Wert Sell_Order_Ticket_1 (2 und 3 auch) verloren.

Prüfen Sie orderopenprice und ordertakeprofit


Ich habe nicht verstanden, warum der Wert von Sell_Order_Ticket_1 nach einem Neustart des Terminals verloren geht?

Es handelt sich um eine Variable, die nicht überschrieben wird, es sei denn, eine neue Verkaufsorder wird eröffnet.

Das ist, was ich verstehe, aber es gibt eine Logik hinter Ihrem Kommentar. Bitte erklären Sie das ein wenig.

Und ich habe mir die Funktionen OrderOpenPrice und OrderTakeProfit angesehen. Was kann man mit ihnen machen?

 
Arav007:


Ich habe nicht verstanden, warum der Wert von Sell_Order_Ticket_1 nach einem Neustart des Terminals verloren geht?

Es handelt sich um eine Variable, die nicht überschrieben wird, es sei denn, es wird ein neuer Verkaufsauftrag eröffnet.

Das ist, was ich verstehe, aber es gibt eine Logik hinter Ihrem Kommentar. Bitte erklären Sie das ein wenig.

Und ich habe mir die Funktionen OrderOpenPrice und OrderTakeProfit angesehen. Was kann man mit ihnen machen?


Beim Neustart des Terminals gehen alle Variablen verloren.

Es können nur globale Variablen des Client-Terminals abgerufen werden.

 
Arav007:


Ich habe nicht verstanden, warum der Wert von Sell_Order_Ticket_1 nach einem Neustart des Terminals verloren geht?

Es handelt sich um eine Variable, die nicht überschrieben wird, es sei denn, es wird ein neuer Verkaufsauftrag eröffnet.

Das ist es, was ich verstehe, aber es gibt eine Logik hinter Ihrem Kommentar. Bitte erklären Sie das ein wenig.

Und ich habe mir die Funktionen OrderOpenPrice und OrderTakeProfit angesehen. Was kann man mit ihnen machen?


einige weitere Tests durchführen und Ihre Dateien erstellen

Öffnen Sie die 3 Trades

notieren Sie die Zahlen, die Sie erhalten

Schließen Sie dann Ihren metatrader4 und starten Sie ihn erneut. Prüfen Sie die Werte von Sell_Order_Ticket_1, Sell_Order_Ticket_2 und Sell_Order_Ticket_3

sind sie gleich? wenn nicht, welchen Wert erhalten Sie?

 

OK, verstanden. Diese Information über "Variable" wird auch für die Zukunft hilfreich sein.

if(OrdersTotal()>0){

        for(cnt=3;cnt>0;cnt--){

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){



                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

if(OrderType()==OP_BUY){ 

if (cnt==3) { Do the Normal Trailing Stop}

if (cnt==2) { Do the Normal Trailing Stop}

if (cnt==1) { Don't move the Stop Loss}

}

}

} 

Wie wäre es damit?

 
Arav007:

OK, verstanden. Diese Information über "Variable" wird auch für die Zukunft hilfreich sein.

Wie wäre es damit?


Können wir uns zunächst noch einmal Ihren Code für die Eröffnung von Geschäften ansehen?

Überprüfen Sie den Stoploss und Takeprofit dieser Trades, da ist noch etwas falsch, sehen Sie das?

 
deVries:


können wir uns zunächst noch einmal Ihren Code zur Eröffnung von Geschäften ansehen?

Prüfen Sie den Stoploss und Takeprofit dieser Trades, da ist noch etwas falsch, sehen Sie das?


ohh, es ist für falschen Code. Nach der Behebung der Fehler, der Take Profit Teil ist gut jetzt aber Stop Loss ist das Problem.

Logik:

if (Fast_EMA>Slow_SMA)

{

wenn (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

{

Kaufen

}

}

 
Arav007:


ohh, es ist für den falschen Code. Nach der Behebung der Fehler, der Take Profit Teil ist gut jetzt aber Stop Loss ist das Problem.

Welche Stoploss haben Sie wollte?? für diese Trades?
 
deVries:
Welchen Stoploss haben Sie für diese Trades gewählt?


Wie hier für USDJPY Trades:

1. Trade (hier der letzte aufgrund der umgekehrten Anordnung der Zeit) hat TP= 103.636

TP des 2. Abschlusses= 103,736

TP des 3. Trades= 108.536 [ Ich habe diesen TP auf einen solchen Abstand gesetzt, damit es so wirkt, als gäbe es keinen TP].

Nun, gemäß meiner Anforderung, wenn der Preis sagen wir 7 Pip [103.603] im Gewinn ist, wird der Stop Loss von

1. und 2. Handel wird sagen wir 1 Pip Gewinn [103.543] und der Stop Loss des 3. Handels wird bei 103.386 bleiben.

Wie in der untenstehenden Abbildung:

Die 1. GBPUSD-Order wurde mit 10 Pips Gewinn geschlossen.

Der 2. Auftrag läuft noch und sein SL wurde verschoben.

Für den 3. Trade wurde der SL ebenfalls verschoben, was ich nicht möchte.

Grund der Beschwerde: