MQL5 TUTORIAL GRUNDLAGEN – 32 SO VERKLEINERN SIE EINE BUY POSITION

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen wie man die Positionsgröße von einer bestehenden Position mit MQL5 verändern kann. Sobald hier der Preis oberhalb der grünen Linie landet, sollten wir sehen dass sich hier unten das Volumen verändert. Ich beschleunige das hier mal kurz. Achten Sie auf die Positionsgröße. Und wir wollen in diesem Video einmal herausfinden wie man so eine Teilschließung einer Position programmieren kann. Um das zu tun klicken Sie im Meta Trader bitte auf dieses kleine Icon hier, oder drücken Sie die F4-Taste. Das ruft dann hier den Meta Editor auf und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen SimplerBuyPositionModifierEA. Klicke auf weiter, weiter und fertigstellen. Jetzt entfernen wir alles oberhalb der OnTick-Funktion und auch die zwei Kommentarzeilen können weg. Wir starten mit einem Include-Befehl und zwar für die Datei Trade.mqh. Die liefert und Handelsfunktionen. Darum erstellen wir uns hier erst einmal von der Klasse CTrade eine Instanz mit dem Namen Trade. Die werden wir gleich brauchen, wenn mir Positionen eröffnen oder verändern möchten. Zunächst einmal müssen wir dafür den Ask Preis ermitteln. Das geht mit der Funktion SymbolInfoDouble. Für das aktuelle Währungspaar benutzen wir SYMBOL_ASK und mit NormalizeDouble und _Digits sorgen wir dafür, dass wir auch automatisch die richtige Anzahl von Nachkommastellen berechnen. Je nach dem welches Währungspaar wir wählen, können das nämlich drei oder fünf Nachkommastellen sein. Im nächsten Schritt prüfen wir mit der Funktion PositionsTotal ob wir keine geöffneten Positionen haben. In diesem Fall liefert uns die Funktion den Wert Null zurück. Und wenn das zutrifft, dann nutzen wir trade.buy um eine Testposition zu eröffnen. Natürlich würde man das nicht auf einem Echtgeldkonto machen. Aber wir eröffnen hier eine Position mit zehn Microlot, damit wir etwas haben, was wir später verändern können. Und zu guter Letzt möchte wir hier noch die neu erstellte Funktion ChangePositionSize aufrufen. Der übergeben wir hier den Ask Preis den wir hier oben ermittelt haben. Die Funktion existiert aber bis jetzt noch nicht, deswegen müssen wir die jetzt programmieren. Wir nutzen in diesem Fall void, da wir keinen Rückgabetyp benötigen. Der Name der Funktion soll ChangePositionSize sein. Und hier sehen wir den übergebenen Ask Preis-Parameter von hier oben. Jetzt müssen wir ein paar Dinge berechnen. Wir fangen an mit der Balance, also dem Bruttoguthaben. Das kriegen wir über die Funktion AccountInfoDouble. Als Parameter übergeben wir ACCOUNT_BALANCE. Alles in Großbuchstaben. Für das Nettoguthaben funktioniert das ähnlich. Auch mit AccountInfoDouble. Diesmal geben wir aber als Parameter ACCOUNT_EQUITY an. Wir nutzen hier eine For-Schleife um alle Positionen durchzugehen. So lange hier noch geöffnete Positionen gefunden werden. Für jede dieser Funktionen möchten wir jetzt das Währungspaar ermitteln. Das macht die Funktion PositionGetSymbol. Für den aktuellen Schleifenzähler. Danach prüfen wir ob das Währungspaar auf dem Chart mit dem Positionssymbol identisch ist. Und wenn das der Fall ist, dann möchten wir gerne die Ticketnummer ermitteln. Die bekommen wir über die Funktion PositionGetInteger. Als Parameter wird hier POSITION_TICKET übergeben. Wir brauchen auch noch die Positionsrichtung. Die kriegen wir auch über PositionGetInteger. Diesmal mit dem Parameter POSITION_TYPE. Und wenn es sich um eine Kaufposition handelt, also wenn der Rückgabewert dem Wert POSITION_TYPE_BUY entspricht, dann prüfen wir zu guter Letzt auch noch, ob die Equity mindestens zehn Punkte höher ist, als das aktuelle Bruttoguthaben. Und erst wenn alle diese Bedingungen hier erfüllt sind, dann nutzen wir trade.PositionClosePartial, um für das aktuelle Ticket die Position um jeweils einem Microlot zu verringern. Der letzte Parameter hier gibt eine Punktetoleranz an. Wir verwenden hier -1 und zu guter Letzt beenden wir noch die IF-Schleife die for-Schleife und die Funktion. Das Trailing stop können wir hier mal rauslöschen. Das war´s so weit. Wenn Sie nicht verstehen, was dieser ganze Code hier bewirken soll, oder wenn Ihnen das zu schnell war, dann möchten Sie sich vielleicht die anderen Videos aus dieser Grundlagenserie noch einmal anschauen. Oder vielleicht ist auch der Premiumkurs interessant für Sie. Jetzt klicken wir jedenfalls erstmal kompilieren. Das hat hier ohne Fehler funktioniert. Und darum können wir jetzt hier oben auf dieses kleine Symbol klicken. Oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination STRG + R. Das hier ist der neue Strategie Tester Wizard. Der wurde von Metaquotes mit dem letzten Update eingeführt. Hier wählen wir jetzt Run single test of an Expert Advisor. Bitte wählen Sie die neu erstellte Datei aus. Markieren Sie hier die Option für die Visualisierung. Und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Wir warten jetzt darauf, dass sich der Preis hier oberhalb von dieser grünen Linie bewegt. Und sobald das der Fall ist. Werden wir sehen, dass die Positionsgröße hier verändert wird. Das ging gerade sehr schnell. Unser Expert Advisor funktioniert also. Uns Sie haben in diesem kurzen Video gelernt, wie Sie eine bestehende Position verringern können und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.