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,