MQL5 TUTORIAL GRUNDLAGEN – 30 SO SCHLIESSEN SIE ALLE BUY POSITIONEN

video

In diesem Video wollen wir uns einmal anschauen, wie man eine Anzahl von Position auf einmal schließen kann. Wir eröffnen hier solange Testpositionen, bis wir die Stückzahl zehn erreicht haben. Dann werden alle zehn Position gleichzeitig geschlossen. Und wir wollen uns einmal anschauen, wie man so etwas in MQL5 programmieren kann. Dazu klicken wir im Metatrader auf dieses kleine Symbol hier oben oder drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerBuyPositionCloser, da wir uns zunächst auf das Schließen von Kaufpositionen beschränken werden. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Zunächst importieren wir die Datei Trade.mqh. Die wird benötigt um Positionen zu eröffnen und stellt vereinfachte Handelsoperationen bereit. Wir erstellen uns zunächst eine Instanz der Klasse CTrade. Die bekommt den Namen trade und wir werden sie später verwenden, um solche Testpositionen zu eröffnen. Da wir kaufen wollen, müssen wir zunächst den Ask Preis ermitteln. Das machen wir mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir wählen SYMBOL_ASK, alles in Großbuchstaben, und weisen das Ergebnis der Variable Ask zu. Mit _Digits und NormalizeDouble lässt sich automatisch ermitteln, wie viele Nachkommastellen das jeweilige Währungspaar hat. Und wenn wir keine offenen Positionen haben beziehungsweise solange, wie unsere Positionsanzahl unter zehn ist, nutzen wir trade.Buy, um eine neue Position von zehn Mikrolots zu kaufen. Und zwar zu dem Ask Preis, den wir hier oben ermittelt haben. Sobald unsere Positionsgesamtanzahl, die durch PositionsTotal ermittelt wird, gleich zehn ist, möchten wir alle Kaufpositionen auf einmal schließen. Das ist natürlich nur in diesem Beispiel hier so gewählt. In der Regel würde man andere Kriterien aussuchen und nicht einfach willkürlich mal zehn Positionen eröffnen. Aber für das Verständnis von der grundlegenden Funktion sollte das so ausreichen. Schließen wir also hier unsere OnTick Funktion. Denn diese Funktion hier muss erst noch programmiert werden. Für dieses Beispiel wird das eine Funktion sein, die uns keinen Rückgabewert zurückliefert und CloseAllBuyPositions heißt. Wir nutzen hier eine Vorschleife, um von der Gesamtanzahl, die wir mit PositionsTotal ermitteln, komplett herunterzuzählen, bis keine Positionen mehr übrig sind. In dieser Schleife ermitteln wir zunächst die Ticket-Nummer der aktuellen Position. Das übernimmt die Funktion PositionGetTicket. Außerdem möchten wir gerne die Positionsrichtung wissen. Die ermitteln wir mit PositionGetInteger und übergeben als Parameter POSITION_TYPE, auch alles in Großbuchstaben. Wir möchten ja nur schließen, wenn es sich um eine Kaufposition handelt. Darum prüfen wir an der Stelle noch, ob die PositionDirection, also die Positionsrichtung den Wert POSITION_TYPE_BUY hat. Und wenn das der Fall ist, ist es eine Kaufposition. Und in diesem Fall nutzen wir trade.PositionClose für unser aktuelles Ticket, um die jeweilige Position zu schließen. Zum Schluss benötigen wir noch zwei schließende Klammern. Eine für die Vorschleife und eine für die Funktion selber. Und das war es im Großen und Ganzen. Wenn Ihnen das zu schnell ging oder Sie nicht genau verstehen, was diese Code Zeilen hier bewirken, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie anschauen. Oder vielleicht ist auch der Premiumkurs interessant für Sie. Wir klicken jetzt jedenfalls hier auf Kompilieren oder drücken die F7 Taste. Das hat hier ohne Fehler funktioniert. Und in diesem Fall können wir hier klicken oder die F4 Taste drücken, um in dem Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Hier wählen wir jetzt die neu erstellte Datei SimplerBuyPositionCloser.ex5 aus. Bitte markieren Sie hier die Option für die Visualisierung und starten Sie Ihren Test. Und so sollte das jetzt auf Ihrem Chart aussehen. Es werden solange Positionen eröffnet, bis die Anzahl zehn erreicht ist. Danach werden alle Positionen gleichzeitig geschlossen. Dieses Video ist aufgrund einer Anfrage eines Mitglieds aus dem Premiumkurs entstanden. Und wenn Sie ähnliche Beispiele haben, die zu einem solchen Video verarbeitet werden könnten, dann schreiben Sie mir doch einfach ein E-Mail. Denn in diesem kurzen Video haben Sie gelernt, wie man mehrere Positionen daraufhin überprüft, ob es sich um Kaufpositionen handelt und sie dann alles auf einmal schließt. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.