MQL5 TUTORIAL GRUNDLAGEN – 31 SO SCHLIESSEN SIE ALLE SELL POSITIONEN

video
play-sharp-fill

In diesem Video soll es darum gehen, wie man automatisch Sell Positionen schließen kann. Dieser Expert Advisor hier tut nichts anderes, als nacheinander zehn Positionen zu eröffnen. Und sobald diese zehn Positionen auf dem Chart eröffnet worden sind, schließt er alle auf einen Schlag. Wir wollen uns jetzt einmal anschauen, wie man so etwas in MQL5 programmieren kann. Um zu starten klicken wir nach wie vor erst mal hier oben auf dieses kleine Symbol oder drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerSellPositionCloser, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann hier alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include Befehl. Damit importieren wir uns die Datei Trade.mqh. Die enthält die Klasse CTrade. Davon erstellen wir uns jetzt eine Instanz mit dem Namen trade, die wir später zur Eröffnung der Positionen benötigen. Da wir Sell Positionen eröffnen möchten, müssen wir zunächst den Bid Preis ermitteln. Das tun wir mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_BID, damit wir den Bid Preis zurückerhalten. Und mit NormalizeDouble und _Digits sorgen wir dafür, dass die benötigte Anzahl der Nachkommastellen automatisch ermittelt wird. Wir möchten gerne wissen, ob wir keine Positionen eröffnet haben. Denn, wenn die Positionsanzahl, die wir mit PositionsTotal berechnen können, kleiner ist als zehn, dann machen wir uns hier mit trade.Sell, noch einige Testpositionen auf. Natürlich würde man das nicht auf einem Echtgeldkonto durchführen. Aber wir müssen hier einige Positionen eröffnen, damit wir etwas haben, was wir hinterher schließen können. Für die Eröffnung nutzen wir trade.Sell. Unsere Positionsgröße ist zehn Mikrolot. Der Rest dieser Befehlskette hier wird in den anderen Videos dieser Grundlagenserie beschrieben. Und sobald unsere Gesamtanzahl der Positionen exakt zehn Positionen ist, möchten wir alle Sell Positionen auf einmal schließen. Und zwar mit dem Befehl CloseAllSellPositions. Diese Funktion hier gibt es aber noch gar nicht. Darum müssen wir die jetzt programmieren. Wir nutzen hier void, da wir keinen Rückgabetyp benötigen. Der Name der Funktion soll CloseAllSellPositions sein. Wir starten hier mit einer Vorschleife und gehen von der Gesamtanzahl der Positionen alle Positionen durch. Zunächst ermitteln wir die Ticket-Nummer. Das geht mir der Funktion PositionGetTicket für die aktuelle Positionsnummer. Danach möchten wir wissen, welchen Positionstyp wir haben. Das ermitteln wir mit PositionGetInteger. Und als Parameter übergeben wir hier POSITION_TYPE, alles in Großbuchstaben. Das Ganze liefert uns dann die Richtung der Position zurück. Und wenn es sich um eine Sell Position handelt, wenn also die Positionsrichtung den Wert POSITION_TYPE_SELL hat, dann nutzen wir trade.PositionClose, um die Position mit der aktuellen Ticketnummer zu schließen. Zum Schluss müssen wir natürlich noch die Vorschleife und die Funktion selbst mit einer Klammer schließen. Im Großen und Ganzen war es das. Sie können jetzt hier oben auf kompilieren klicken oder die F7 Taste drücken. Ich habe es wiedermal geschafft, hier oben ein Sonderzeichen im Quellcode einzutippen. Keine Ahnung, wie mir das immer passiert. Klicken wir also noch mal auf Kompilieren und diesmal hat das funktioniert. Solche Kleinigkeiten können einen manchmal in den Wahnsinn treiben. Und falls Sie auch Fehler haben, die Sie nicht finden, oder falls Sie nicht wissen, wie dieser ganze Code Teil hier funktioniert, dann möchten Sie sich vielleicht nochmal die anderen Videos aus diesem Grundlagenkurs anschauen. Oder vielleicht ist auch der Premiumkurs interessant für Sie. Wir haben jetzt jedenfalls keine Fehler mehr. Und darum klicken wir hier oben oder drücken die F4 Taste, um in dem Metatrader zurückzukehren. Im Metatrader selbst klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Hier kommt jetzt dieses Auswahlfenster zum Vorschein. Das ist neu. Wir wählen an der Stelle Run single test of an Expert Advisor aus. Hier wählen wir als Programm SimplerSellPositionCloser.ex5. Markieren hier unten die Option für die Visualisierung und starten unseren Test. Und so sieht das Ganze jetzt aus. Hier werden solange Sell Positionen eröffnet, bis die Anzahl zehn erreicht wird. Und dann wird unsere Funktion zum Schließen aller Positionen aufgerufen. Die macht dann alle Positionen gleichzeitig zu. Und Sie haben in diesem einfachen und kurzen Video gelernt, wie man so etwas in MQL5 programmieren kann. Und Sie haben das selbst getan, mit diesen paar Zeilen hier im Metaeditor.