Schließen Sie nur gewinnbringende Trades mit Gewinnziel - Seite 4

 
af1:

Ok Raptor, ich werde versuchen, diese Schleife zu machen, aber bevor ich das tue, was, wenn ich einfach ändere

von diesem:
Zu diesem:


Könnte dies die Aufgabe erfüllen?

Nein, Sie MÜSSEN beim Schließen/Löschen von Aufträgen rückwärts zählen.
 
RaptorUK:
Nein, Sie MÜSSEN beim Schließen/Löschen von Aufträgen herunterzählen.


Hallo Raptor!

Ich habe den Code überprüft und um ehrlich zu sein, sehe ich keinen großen Unterschied zwischen der Code-Zeile, die in deinem Beitrag vorgeschlagen wurde:

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)

und der Code-Zeile des ea, den ich teste:

for(i=OrdersTotal()-1;i>=0;i--)

Der einzige Unterschied, den ich sehe, ist, dass Sie MODE_TRADES hinzufügen, und Sie haben nicht hinzufügen, sleep. Ist dies relevant?

Könnten Sie mir einen Hinweis geben, was ich im Code ändern sollte?

 
af1:


Hallo Raptor!

Ich habe den Code überprüft und um ehrlich zu sein, sehe ich keinen großen Unterschied zwischen der in Ihrem Beitrag vorgeschlagenen Codezeile:

und der Code-Zeile des Ea, den ich teste:

Der einzige Unterschied, den ich sehe, ist, dass Sie MODE_TRADES hinzufügen, und Sie haben sleep nicht hinzugefügt. Ist das relevant?

Könnten Sie mir einen Hinweis geben, was ich im Code ändern sollte?

Entschuldigung, ich habe das hier gesehen...

for(int i=0;i<OrdersTotal();i++)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
         if(OrderType()==OP_SELL)  
         {
            OrdersSELL++;
            SellLots += OrderLots();
            double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
            if(ThisTradeProfit>0)
            BuyProfit += ThisTradeProfit;
         }

. . . und Ihren Beitrag und nahm an, dass es Ihr OrderClose()-Code war. . .

 
af1:


Ich habe die 2 externen bool nicht hinzugefügt, ich ändere dies nur, um "nur Kaufaufträge" zu schließen.

und ändern Sie diese zu schließen "nur verkaufen Bestellungen"

Jetzt habe ich also zwei EA's. Einen für Close-Käufe und einen für Close-Verkäufe. Das ist für mich in Ordnung.


Ich habe auf beiden Konten, Demo und Real, getestet. Auf dem Demokonto funktioniert es gut, aber auf dem Realkonto fängt es an, Positionen zu schließen, sobald das Gewinnziel erreicht ist, aber dann hört es auf, Positionen zu schließen, wenn die verbleibenden Aufträge unter das Gewinnziel fallen. Dies geschieht, wenn sich der Preis zum Zeitpunkt der Schließung ändert. Es neigt also dazu, profitable Aufträge offen zu lassen, anstatt sie alle zu schließen (profitable Aufträge).

Ich habe diesen Beitrag von RaptorUK https://www.mql5.com/en/forum/139654 gelesen. Es ist so ähnlich, aber ich weiß nicht wirklich, was die beste Lösung für dieses Problem sein könnte.



Dies ist mir gerade erst aufgefallen - ich weiß nicht, ob es einen großen Unterschied macht, aber es ist nicht richtig

for(int i=0;i<OrdersTotal();i++)

      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
         if(OrderType()==OP_SELL)  
         {
            OrdersSELL++;
            SellLots += OrderLots();
            double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
            if(ThisTradeProfit>0)
            BuyProfit += ThisTradeProfit;
         }
 
af1:


Ich habe die 2 externen bool nicht hinzugefügt, ich ändere dies einfach auf "nur Kaufaufträge".

und ändern Sie diese zu schließen "nur verkaufen Bestellungen"

Jetzt habe ich also zwei EA's. Einen für Close-Käufe und einen für Close-Verkäufe. Das ist für mich in Ordnung.


Ich habe auf beiden Konten, Demo und Real, getestet. Auf dem Demokonto funktioniert es gut, aber auf dem Realkonto fängt es an, Positionen zu schließen, sobald das Gewinnziel erreicht ist, aber dann hört es auf, Positionen zu schließen, wenn die verbleibenden Aufträge unter das Gewinnziel fallen. Dies geschieht, wenn sich der Preis zum Zeitpunkt der Schließung ändert. Es neigt also dazu, profitable Aufträge offen zu lassen, anstatt sie alle zu schließen (profitable Aufträge).

Ich habe diesen Beitrag von RaptorUK https://www.mql5.com/en/forum/139654 gelesen. Es ist etwas in der Art, aber ich weiß nicht wirklich, was die beste Lösung für dieses Problem sein könnte.



Das deutet darauf hin, dass beim Schließen der Geschäfte Fehler aufgetreten sind. Was steht im Protokoll?

Vielleicht ist Ihr Slippage mit nur 5 Punkten zu gering?

 
RaptorUK:

Entschuldigung, ich habe dies gesehen...

. . . und Ihren Beitrag und nahm an, dass es Ihr OrderClose()-Code war . . .

Kein Problem.

GumRai:


Ich habe das gerade erst bemerkt - ich weiß nicht, ob es einen großen Unterschied macht, aber es ist nicht richtig

for(int i=0;i<OrdersTotal();i++)

In der Demo habe ich keinen Unterschied gesehen, aber im realen Konto taucht das Problem auf, wenn es "seltsamerweise" Verkaufsaufträge schließt, also könnte dies vielleicht das Problem lösen.

Lassen Sie mich noch einmal mit dieser Änderung testen und ich werde Sie über die Ergebnisse informieren.

GumRai:


Das deutet darauf hin, dass es Fehler beim Schließen der Trades gibt, was steht im Log?

Vielleicht ist Ihr Slippage mit nur 5 Punkten zu gering?

Keine Fehler im Log.

Vielleicht könnte ein größerer Schlupf helfen. Ich werde es testen.

 

Hallo Freunde

Hat jemand, wo ein EA für MT5 zu schließen alle Trades bei Gewinn erreicht.

 
BobyGill:

Hallo Freunde

Hat jemand einen EA für MT5, um alle Trades bei Gewinn zu schließen.

Warum haben Sie ein 6 Jahre altes Thema in der MT4 Abschnitt gebracht, um über MT5 zu fragen?

 
Leute...
Ich frage mich nur...
Ist es möglich, eine gleiche Logik zu verwenden, aber die eine, die es ist anders ist nur , wenn die Gesamttransaktion erreicht wird, sagen wir 200 Transaktion dann wird es den Schlussgewinn auslösen.
Grund der Beschwerde: