MQL5 TUTORIAL GRUNDLAGEN – 50 SIMPLER RANDOM ENTRY EXPERT ADVISOR

video

In diesem Video wollen wir uns einmal anschauen, wie man einen zufallsbasierten Einstieg programmieren kann. Unser Expert Advisor produziert hier kontinuierlich Kaufen- und Verkaufen-Signale. Der Zufallseinstieg mag Ihnen seltsam vorkommen, aber ich verspreche Ihnen die Ergebnisse sind interessant. Und wir wollen uns in diesem Video einmal anschauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte auf dieses kleine Symbol hier oben oder drücken auf 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 SimplerRandomEntryEA, klicke auf weiter. Weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Zunächst nutzen wir include und importieren uns die Datei Trade.mqh. Die ist Bestandteil von MQL5 und stellt uns vereinfachte Handelsfunktionen bereit. Danach erstellen wir uns eine Instanz von der Klasse CTrade. Die bekommt den Namen Trade und wir werden Sie später nutzen, um Positionen zu eröffnen. Außerdem erstellen wir uns noch eine externe Variable für die Eingabe eines Integer-Wertes. Die bekommt den Namen MassenTest und erhält den initialen Wert 1. Das Ganze hier wird später noch interessant, im nächsten Video, wo es um Massentests gehen wird. In der OnTick-Funktion berechnen wir zunächst einmal den Ask-Preis. Das übernimmt die Funktion SymbolInfoDouble. Die erhält als Parameter das aktuelle Währungspaar und den Parameter SYMBOL_ASK. Bitte alles in Großbuchstaben. Mit NormalizeDouble und _Digits stellen wir sicher, dass je nach Währungspaar entweder 3 oder 5 Nachkommastellen automatisch berechnet werden. Das Ganze wiederholen wir hier nochmal für den Bid-Preis. Die Zeile ist nahezu identisch, nur der Variablenname ist anders und wir nutzen hier als zweiten Parameter SYMBOL_BID. Wir brauchen auch noch eine Variable für unser Signal. Die bekommt auch den Namen Signal. Ist vom Typ string, bekommt hier aber noch keinen Wert zugewiesen, denn den möchten wir jetzt ermitteln. Dazu initialisieren wir zunächst einmal unseren Zufallsgenerator. Das übernimmt die Funktion MathSrand. Die stellt uns die Anfangsposition für das Generieren einer Folge von pseudozufälligen Ganzzahlen bereit. Und dieser Funktion übergeben wir als Parameter das Ergebnis der Funktion GetTickCount. Die Funktion GetTickCount gibt uns die Zahl der Millisekunden seit dem Systemstart an. Und die Kombination aus diesen beiden Funktionen hier wird eine einmalige Folge von Zufallszahlen erstellen. Berechnet wir das Ganze mit der Funktion MathRand. Diese Funktion kann bis zu 32767 Zufallszahlen generieren. Wir brauchen aber nur 2. Das wird entweder eine 0 oder eine 1 sein. Wenn unsere Zufallszahl einer 0 entspricht, dann möchten wir unser Signal auf kaufen setzen. Und gibt unser Zufallsgenerator eine 1 zurück, dann möchten wir gerne verkaufen, also setzen wir unser Signal auf Sell. Denn wenn unser Signal auf Sell steht und die Funktion PositionsTotal einen Rückgabewert hat von kleiner 1, dann haben wir ein Verkaufssignal und keine offenen Positionen. Und dann nutzen wir trade.Sell um 10 Mircolot zu verkaufen. Andernfalls, wenn unser Signal auf Buy steht und wir ebenfalls keine geöffneten Positionen haben, dann möchten wir 10 Micorlot kaufen. Also nutzen wir trade.Buy, um 10 Microlot zu kaufen. Zum Schluss erstellen wir mit Command noch eine Ausgabe auf dem Chart. Die wird uns den Text ausgeben „Das aktuelle Signal ist jetzt:“ gefolgt von dem ermittelten Signal. Das war´s so weit. Wenn Sie nicht verstanden haben, was alle diese Code-Zeile bewirken sollen oder falls Ihnen das zu schnell war. Dann wollen Sie sich vielleicht zunächst eines der anderen Videos aus dieser Grundlagen-Serie anschauen oder vielleicht ist sogar der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir mal auf kompilieren. Das hat funktioniert. Wir haben keine Fehler und wenn das bei Ihnen auch so ist, dann können Sie 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 mit der rechten Maustaste in ein leeres Chart ohne Indikatoren. Wählen Vorlagen, Vorlage speichern und speichern diese Vorlage unter dem Namen tester.tpl. Den alten Wert können sie ersetzen. Denn tester.tpl ist die Schablone, die wir gleich im Strategietester sehen werden. Um den aufzurufen, klicken Sie bitte auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Steuerung und R. Hier wählen wir jetzt die neu erstellte Datei SimplerRandomEntryEA.ex5 aus. Bitte markieren Sie hier unten die Option für den visuellen Modus und starten Sie einen Test. Unser Expert Advisor läuft hier los. Und wir erhalten die ersten Ergebnisse. Im Diagramm vom Metatrader sieht das dann so aus. Stoppen wir mal den Test und starten den gleichen Test erneut, ohne den visuellen Modus anzuhaken. Dann sehen wir, dass hier ein Endergebnis produziert wird. In diesem Fall haben wir 325,46 € Gewinn gemacht. Starten wir den gleichen Test nochmal, dann erhalten wir andere Ergebnisse. Diesmal beträgt unser Gewinn 138,54 €. Wir haben nichts am Expert Advisor geändert, aber da wir einen Zufallsgenerator verwenden, führt das jedes Mal zu einem anderen Ergebnis. Im nächsten Video werden wir uns Massentests anschauen. Da wird’s dann besonders interessant. Aber in diesem Video haben Sie gelernt, wie sie mit Hilfe eines Zufallsgenerators, beliebige Einstiege produzieren und handeln können. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.