MQL5 TUTORIAL GRUNDLAGEN – 112 SIMPLES BUY PERCENTAGE RISIKO

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist, aufgrund von prozentuellen Verlustwerten Positionen zu schließen. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader hier oben auf dieses kleine Symbol oder drücken Sie 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 mal den Namen SimplesBuyPercentageRisiko, 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 für die Datei trade.mqh. Die enthält die Klasse CTrade von der wir uns hier eine Instanz erstellen. Außerdem benötigen wir noch eine input-Variable vom Typ double für den Risikoprozentwert. Dieser Zusatz input wird es ermöglich, dass das der Benutzer ohne Neukompilierung verändern kann. Und wir brauchen noch eine Variable vom Typ double für den maximalen Positionsverlust, den wir erlauben. Innerhalb der OnTick-Funktion starten wir damit, dass wir zunächst den Ask-Preis berechnen. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart und wir nutzen hier SYMBOL_ASK mit Hilfe von NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar automatisch berechnen. Im nächsten Schritt berechnen wir hier die Balance, also das Bruttoguthaben. Das übernimmt die Funktion AccountInfoDouble und hier übergeben wir als Parameter ACCOUNT_BALANCE.

 

Damit wir auch prüfen können, ob unser Expert Advisor funktioniert benötigen wir eine Testposition. Das macht man natürlich nur auf einem Demokonto. Falls wir also keine offene Position haben, dann nutzen wir hier trade.Buy um eine Testposition für zehn Microlot zu eröffnen. Es handelt sich hier um eine buy, also eine Kauf-Position. Kommen wir zum eigentlichen interessanten Teil. Wir gehen hier mit einer Vorschleife alle offenen Positionen durch. Für jede dieser gefundenen Positionen benutzen wir PositionGetTicket für den aktuellen Schleifenzähler, um die Ticketnummer für unsere Position zu ermitteln. Danach ermitteln wir mit PositionGetDouble den Profit der Position. Wenn man das einmal markiert und die F1-Taste drückt, dann sieht man, dass der Profit nicht den SWAP, also die Gebühren für das Halten einer Position über Nacht enthält. Falls sie längerfristig Positionen halten, sollten Sie das auch berücksichtigen. Für unser einfaches Beispiel soll das aber so reichen.

 

Jetzt berechnen wir den maximalen Positionsverlust. Wir nehmen unser Bruttoguthaben, also die Balance und teilen es durch 100. Das multiplizieren wir dann mit dem Wert den der Benutzer als Risiko eingegeben hat. Und falls Sie sich hier vorne über den Teil wundern, wir müssen das Ganze als negativen Wert berechnen, denn ein Verlust ist negativ. Danach baue ich hier noch zwei Print-Ausgaben ein. Die werden uns im Journal den Positionsprofit und den Wert für den maximalen Positionsverlust angeben. Denn immer, wenn der Positionsprofit niedriger ist als das was wir als maximalen Positionsverlust erlauben, dann nutzen wir trade.PositionClose, um unser jeweiliges Ticket zu schließen. Bitte vergessen Sie nicht die schließende Klammer hier für den Vorloop einzusetzen. Und zum Schluss gönnen wir uns noch eine Comment-Ausgabe. Die wird uns auf dem Chart den Wert für die Balance, den maximalen Positionsverlust und den prozentualen Risikowert ausgeben.

 

Das wars auch schon so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bedeuten, dann möchten Sie sich vielleicht zunächst eines der Grundlagenvideos noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Und das hier war übrigens wieder ein Vorschlag von einem Premiumkursmitglied. Im Anschluss, wenn das Video fertig ist, werde ich Ihm diesen Quelltext hier schicken. Und falls Sie bereits ein Premiummitglied sind und eine Idee für so ein Video haben, dann schicken Sie mir doch einfach ein E-Mail. Für den Moment klicken wir hier auf Ansicht, Werkzeugleiste und klicken auf Kompilieren oder Sie drücken die F7-Taste auf Ihrer Tastatur. Das hat bei mir ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben 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 ex5-Datei aus, markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Wir sehen hier oben die Angabe und sobald unser maximaler Positionsverlust hier überschritten wird, sollte die Position geschlossen werden. Ich erhöhe mal hier die Geschwindigkeit und wenn wir jetzt hier in die Historie schauen, dann sehen wir, dass unsere Positionen bei einem Verlust von fünf Euro geschlossen werden.

 

Ich habe hier, in den Eingaben, einen Wert von 0,5 Prozent definiert. Jetzt ändere ich das mal auf 0,1, starte einen neuen Test und diesmal sollte man das hier deutlich schneller sehen können. Unter dem Journal sehen wir die aktuellen Werte für den Positionsverlust und für den maximalen Wert, den wir zulassen. In der Historie werden die Positionen jetzt bei etwas über einem Euro Verlust geschlossen. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Prozentwert nutzen können, um Positionen bei Überschreitung dieses Prozentwertes automatisch schließen zu lassen und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.