MQL5 TUTORIAL GRUNDLAGEN – 78 SIMPLE MULTI CURRENCY ORDER

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist, im Strategietest, Positionen für unterschiedliche Währungspaare zu öffnen. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader auf dieses kleine Symbol hier oben 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 einmal den Namen SimpleMultiCurrencyOrder, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können entfernt werden. Wir starten mit einem include-Befehl, der wird uns die Datei trade.mqh importieren. Die ist Bestandteil von MQL5 und enthält die Klasse CTrade von der wir uns hier eine Instanz mit dem Namen trade erstellen. Die werden wir gleich verwenden, um unsere Positionen zu eröffnen. Innerhalb der OnTick-Funktion starten wir damit, dass wir den Ask-Preis berechnen. Das machen wir mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK für den Ask-Preis und mit NormalizeDouble und _Digits stellen wir sicher, dass wir für das jeweilige Währungspaar die richtige Anzahl von Nachkommastellen ermitteln. Und da wir ja Positionen in unterschiedlichen Währungspaaren eröffnen möchten, müssen wir das Ganze jetzt nochmal wiederholen. Diesmal holen wir uns den Ask-Preis für dieses Währungspaar, das ist das Britische Pfund gegen den US-Dollar. Darum geben wir jetzt hier als ersten Parameter in der Klammer die Bezeichnung des Währungspaares an. Und zwar so wie sie hier auftaucht. Das kann je nach Kontentyp etwas anderes aussehen. Ich habe zum Beispiel einige Kontentypen, wo hinten noch ein Suffix wie .M steht, also stellen Sie bitte sicher, dass Sie das hier genau richtig eingeben, sowie es auch auf Ihrem Chart angezeigt wird. Das Ganze wiederholen wir jetzt nochmal. Diesmal holen wir uns den Ask-Preis für den US-Dollar gegen den Kanadischen Dollar und geben das hier im ersten Parameter entsprechend an. Und damit wir in beide Richtungen traden können, machen wir das Ganze jetzt noch für den Bid-Preis. Hier für das aktuelle Währungspaar und für die beiden anderen Währungspaare, in denen wir handeln möchten. Als nächstes erstellen wir uns hier eine string-Variable für das Signal. Die bekommt noch keinen Wert zugwiesen. Und da es hier um Demonstrationszwecke geht, reicht uns ein zufälliges Signal. Dazu wird die Funktion MathSRand genutzt und die Funktion GetTickCount, um unseren Zufallsgenerator zu initialisieren. GetTickCount gibt uns die Anzahl der Millisekunden seit dem Systemstart zurück und in Kombination erzeugt das hier einen eindeutigen Wert, den wir als Basis für die Ermittlung unserer Zufallszahlen nutzen werden. Die Zufallszahl selbst ermitteln wir mit MathRand. Das sieht ähnlich aus, wie diese Funktion, allerdings ohne S in der Mitte. Und dieses %2 zeigt uns, dass wir zwei unterschiedliche Werte erhalten werden. Die reichen uns, denn wenn unsere Zufallszahl den Wert 0 hat, dann möchten wir gerne kaufen, also weisen wir den Begriff buy unserer signal-Variable zu. Im anderen Fall, wenn der Rückgabewert für unsere Zufallszahl 1 ist, dann möchten wir gerne verkaufen und dann weisen wir den Begriff sell unserer signal-Variable zu. Und sobald wir ein verkaufs-Signal haben und die Anzahl für PositionsTotal kleiner ist als 10, dann möchten wir gleich mehrere Positionen eröffnen. Das machen wir mit trade.sell für jeweils 10 Microlot und geben hier in dem ersten Parameter die jeweiligen Währungspaare an. Für das aktuelle Währungspaar habe ich hier den Wert NULL genutzt, alles in Großbuchstaben. Das steht für keinen speziellen Wert und man kann NULL jeder anderen Basisvariable ohne Umwandlung zuordnen. Man hätte hier auch _SYMBOL nehmen können, wie hier oben. Im anderen Fall, wenn unser Signal den Wert buy, also kaufen hat und der Rückgabewert für die Funktion PositionsTotal ebenfalls nicht größer ist als 10, dann nutzen wir trade.buy, um 10 Microlot für das jeweilige Währungspaar zu kaufen. Und das wars auch schon. Wenn Ihnen das hier zu schnell ging oder wenn Sie nicht wissen was alle diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst einmal die anderen Videos aus dieser Grundlagenserie anschauen. Vielleicht ist aber auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier mal auf kompilieren oder drücken die F7-Taste. Das sollte ohne Fehler funktionieren und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses Symbol klicken oder Sie drücken die F4-Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung + R. Bitte wählen Sie hier die neu erstellte Datei SimpleMulitCurrencyOrder.ex5, markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test. Und hier werden auch sofort die ersten Positionen eröffnet. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für mehrere unterschiedliche Währungspaare im Strategietester Positionen eröffnen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.