MQL4 TUTORIAL GRUNDLAGEN – 58 SIMPLE DYNAMISCHE BUY POSITIONSGROESSE

video

In diesem Video wollen wir uns einmal anschauen, wie man die Positionsgröße für Kaufpositionen dynamisch berechnen kann. Wir ermitteln die Positionsgröße derzeit anhand der Equity, also lassen Sie uns einmal herausfinden, wie man so etwas in MQL4 programmieren kann. Um das zu tun, klicken Sie bitte hier oben auf diesen kleinen Button 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 SimpleDynamischeBuyPositionsGroesse, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden. Und auch die beiden Kommentarzeilen werden entfernt. Um die Positionsgröße zu berechnen benötigen wir eine Variable vom Typ double. Die in der Lage ist, Nachkommastellen aufzunehmen. Der Name der Variablen ist hier PositionSize. Und wir möchten gerne die Positionsgröße anhand der Equity ermitteln. Die sogenannte AccountEquity stellt unser Nettoguthaben dar. Das ist vom Prinzip das was von Ihrem Bruttoguthaben übrig bleibt, nach dem Sie für offene Positionen und Gebühren bezahlt haben. In diesem Fall möchte ich gerne unsere Equity durch 100.000 teilen. Das kann aber dazu führen, dass sehr krumme Zahlen dabei rauskommen. Und wenn das Resultat mehr als zwei Nachkommastellen hat, dann würde das dazu führen, dass wir für die Positionseröffnung, hier im Journal, ständig Fehlermeldungen bekommen würden. Dort würde dann sowas stehen wie, falsche Positionsgröße. Und darum nutzen wir hier zusätzlich die Funktion NormalizeDouble. Die ist in der Lage, aufzurunden, und zwar geben wir zunächst den Wert an und dann die Anzahl von Nachkommastellen. In unserem Fall hätte ich gerne zwei Nachkommastellen. Für dieses einfache Beispiel nutzen wir auch einfach Einstiegskriterien. Zunächst prüfen wir ob der Rückgabewert für OrdersTotal 0 ist. Wenn das der Fall ist, dann bedeutet das wir haben keine geöffneten Positionen und keine PendingOrder im Markt. Als zweites Kriterium möchte ich gerne prüfen, ob die AccountEquity, also das Nettoguthaben größer oder gleich ist als das Bruttoguthaben, also die AccountBalance. Und wenn diese beiden Bedingungen zutreffen, dann nutzen wir hier den OrderSend-Befehl für das aktuelle Währungspaar auf dem Chart, um eine Kaufposition zu eröffnen, und zwar mit der dynamischen Positionsgröße, die wir hier oben berechnet haben. Zum Schluss nutzen wir noch den Comment-Befehl für eine Chartausgabe. Die wird uns die Texte Balance, Equity und Positionsgröße gefolgt von den ermittelten Werten ausgeben. Bitte vergessen Sie hier nicht die schließende Klammer zu setzen. Falls Ihnen das hier alles zu schnell ging oder Falls Sie nicht wissen was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie noch einmal anschauen oder vielleicht ist auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf kompilieren oder drücken die F7-Taste. Das war´s soweit. Wir haben keine Fehler. Und wenn das bei Ihnen auch der Fall ist, dann können Sie jetzt hier 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 Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimpleDynamischeBuyPositionsgroesse.ex4 aus. Markieren Sie hier den Haken für den visuellen Modus und starten Sie einen Test. Hier wurde die erste Position bereits eröffnet. Die Positionsgröße ist 1. Da wir auch gerundet haben, kann das eine Weile dauern. Wir beschleunigen das Ganze mal. Und dann sollten wir sehen, dass die Positionsgröße sich hier mit der Equity verändert. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie mit MQL4 eine dynamische Positionsgröße für Buy-Positionen anhand des Nettoguthabens berechnen können. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL4.