MQL5 TUTORIAL DEUTSCH – SIMPLE KOMBININERTE OPTIMIERUNG

In diesem Video geht es um die Möglichkeit mehrere Variablen in einem Backtest mit unterschiedlichen Werten zu vergleichen. Wir haben hier z.B. einen Take-Profit-Wert und einen Stop-Loss-Wert und möchten uns einmal anschauen, wie man im Test mit historischen Daten unterschiedliche dieser Werte miteinander vergleichen kann. Im Meta Trader selbst haben wir einen Take-Profit-Wert und einen Stop-Loss-Wert. Hier können wir bestimmen, mit welchen Werten wir starten. Und in welcher Schrittweite wir bis zu einem bestimmten Endwert testen möchten. Und diese Variablen lassen sich zur Laufzeit vom Benutzer verändern, ohne das etwas programmiert werden muss. Und wir wollen uns jetzt einmal anschauen, wie man das mit MQL5 so realisieren kann. Um das zu tun, klicken Sie bitte auf diesen kleinen Button hier oben oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf und hier wählen wir Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplekombinierteOptimierung, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen hier werde entfernt. Zunächst erstellen wir uns eine Instanz von der Klasse CTrade. Dazu nutzen wir den Include Befehl, um die Datei Trade.mqh zu importieren. Die ist Bestandteil von MQL5 und bietet und die Klasse CTrade von der wir hier eine Instanz mit dem Namen Trade erstellen. Außerdem erstellen wir uns hier zwei Testvariablen. Eine für den Take-Profit-Wert und eine für den Stop-Loss-Wert. Beide werden mit dem Zusatz Input versehen. Denn Input Variablen kann der Benutzer in den Programmeigenschaften verändern. so wie das hier unten abgebildet ist. Innerhalb der On Tick Funktion brauchen wir zunächst einmal den AskPreis, den bekommen wir mit der Funktion SimpleInfoDouble für das aktuelle Währungspaar. Und Symbol_Ask liefert uns den gewünschten Ask Preis. Mit NormolizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Ziffern nach dem Dezimalpunkt bekommen. Denn wie man sieht, gibt es hier Währungspaare mit drei und andere mit fünf Nachkommastellen. Und _Digits liefert uns den passenden Wert automatisch. Das gleiche machen wir hier nochmal mit dem BidPreis. Die Zeile ist identisch, aber diesmal nutzen wir Symbol_Bit. Wenn Sie einmal einen Doppelklick auf eines dieser Währungspaare machen, dann sehen Sie hier auch, dass wir zwei verschiedene Preislevel haben. Der AskPreis ist der Preis, den wir zahlen müssen, wenn wir etwas kaufen. Der BitPreis ist der Preis, den wir erhalten, wenn wir etwas verkaufen. Und da wir beides tun möchten, brauchen wir auch beide Preise. Außerdem ermitteln wir für die Chartausgabe mit AccountInfoDouble noch die Balance, also den Wert für unser Bruttoguthaben auf Kontenbasis und mit AccountInfoDouble und ACCOUNT_EQUITY holen wir uns den Nettowert für das Nettoguthaben. Das entspricht dem Bruttoguthaben abzüglich aller offenen Verbindlichkeiten. Und immer, wenn keine Positionen geöffnet sind, wenn also die Funktion PositionsTotal uns einen Wert von 0 zurückliefert, dann möchten wir gerne Testpositionen eröffnen. In unserem Fall machen wir uns mit Trade.Buy und Trade.Sell jeweils Positionen über 10 Microlot auf und nutzen unseren Stop-Loss und unseren Take-Profit-Wert um die jeweiligen Ausstiegspunkte zu übergeben. Das alles ist hier nur zu Testzwecken gedacht. Bitte nicht auf einem Echtgeldkonto ausführen. Wir möchten hier nur darstellen, wie man Werte in einer Testserie miteinander vergleicht. Zum Schluss erstellen wir noch eine Chartausgabe mit dem Comment Befehl. Die wird uns im visuellen Modus Balance, also Bruttoguthaben, Equity für das Nettoguthaben, den jeweiligen Take-Profit-Wert und den Stop-Loss-Wert auf dem Chart anzeigen. Das wars auch schon. Wenn Sie alles soweit haben, klicken Sie hier oben auf Kompilieren oder drücken F7. Und wenn das alles ohne Fehler funktioniert hat wie in diesem Fall, dann können Sie hier klicken oder mit F4 zurückkehren in den Meta Trader. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination STRG+R. Hier wählen wir die neu erstellte Datei SimplekombinierteOptimierung.ex5 aus. Markieren zunächst einmal die Visualisierung und starten einen Test. Hier kann man jetzt erkennen, dass Positionen eröffnet und geschlossen werden. Grundsätzlich funktioniert unser Expert Advisor also. Stoppen wir das mal. Wir deaktivieren hier die Option für die Visualisierung. Wählen hier den schnellen generischen Algorithmus aus und starten unseren Test. Dann sehen wir, dass hier in blitzeseile unsere Ergebnisse auftauchen, die lassen sich jetzt hier anhand des Take-Profit-Wertes sortieren. Und wir sehen, es wird jeweils um eins hoch gezählt. Klicken wir nochmal auf Eingaben, machen einen weiteren Haken beim Stop-Loss-Wert. Auch den möchte ich in Einzelschritten bis 200 durchrechnen lassen. Das sind 51 Kombinationsmöglichkeiten, multipliziert mit den 31 Kombinationsmöglichkeiten aus dem letzten Test, wären das 1581 Testläufe. Klicken wir also mal auf Test starten. Dann fängt der Meta Trader an zu rechnen. Und hier bekommen wir eine große Anzahl an Optimierungsergebnissen angezeigt. Jeweils in unterschiedlichen Kombinationen für den Take-Profit-Wert und den Stop-Loss-Wert. Hier könnten Sie natürlich noch mehr Variablen gegeneinander antreten lassen. Je nachdem was Sie testen möchten. Die Ergebnisse lassen sich mit der rechten Maustaste auch für Office exportieren. Und so sieht das ganze dann in der Tabellenkalkulation aus. Ok. In diesem kurzen Video haben Sie gelernt, wie Sie zwei Variablen, in diesem Fall für den Take-Profit und den Stop-Loss-Wert in unterschiedlichen Werten gegeneinander antreten lassen können, wie man die Werte verändern kann und wie man mit Hilfe der Optimierung einige hundert Kombinationen in wenigen Sekunden durchrechnen kann. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.

Download “MQL5 TUTORIAL DEUTSCH - SIMPLE KOMBINIERTE BACKTEST OPTIMIERUNG” SimpleKombinierteOptimierung.txt – 13-mal heruntergeladen – 1 KB