In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor für so einen dreifachen exponentiellen Moving Average erstellt. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte auf dieses kleine Symbol hier oben oder drücken 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 SimplerTrippleEMA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include Befehl. Der wird uns die Datei Trade.mqh importieren. Die ist Bestandteil von MQL5 und stellt uns vereinfachte Handelsfunktionen bereit. Dazu erstellen wir uns zunächst eine Instanz von der Klasse CTrade und geben ihr den Namen trade. Die werden wir später verwenden, um Positionen zu eröffnen. Innerhalt der OnTick Funktion starten wir damit, dass wir den Ask Preis berechnen. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK, bitte alles in Großbuchstaben. Und mit NormalizeDouble und _Digits stellen wir sicher, dass auch die richtige Anzahl der Nachkommastellen für das jeweilige Währungspaar berechnet wird. Danach wiederholen wir das Ganze noch einmal für den Bid Preis. Alles ist identisch, bis auf den Variablen Namen und diesmal verwenden wir als zweiten Parameter SYMBOL_BID. Jetzt nutzen wir MqlRates um uns ein Array zu erstellen, welches die Preisdaten für uns aufnehmen kann. Das sortieren wir mit Hilfe des Befehls ArraySetAsSeries von der aktuellen Kerze an abwärts. Und mit Hilfe von CopyRates füllen wir jetzt unser Preis Info Array für das aktuelle Währungspaar auf dem Chart und die dort verwendete Zeiteinheit. Wir starten bei Kerze null und wir brauchen die Daten für drei Kerzen. Heutzutage verwendet man _Symbol und _Period. Für unser Signal erstellen wir jetzt eine Signal Variable vom Typ string, weisen hier aber noch keinen Wert zu, denn den möchten wir jetzt ermitteln. Dazu brauchen wir noch drei Arrays. Eins für unseren Zehner, eins für unseren Fünfziger und eins für ein Hunderter exponentiellen Moving Average. Wir nutzen die MQL Funktion iMA, um für das aktuelle Währungspaar und die aktuelle Zeiteinheit zunächst für zehn Kerzen, ohne einen Verschiebungswert einen exponentiellen Moving Average zu berechnen. Deswegen nutzen wir hier MODE_EMA. Und das Ganze soll anhand der Schlusskurse passieren. Damit ist der erste exponentielle gleitende Durchschnitt berechnet. Wir wiederholen das jetzt noch zweimal. Einmal für fünfzig und einmal für einhundert Kerzen. Bitte vergessen Sie nicht, hier die Variablen Namen entsprechend anzupassen. Auch diese drei Arrays sortieren wir von der aktuellen Kerze abwärts indem wir die Funktion ArraySetAsSeries verwenden. Und danach nutzen wir CopyBuffer, um jedes einzelne Array anhand der von uns getroffenen Definition für Buffer null, also die Signallinie von der aktuellen Kerze an für zehn Kerzen mit Daten zu füllen. Eigentlich würden an der Stelle auch drei Kerzen reichen. Und jetzt sind wir in der Lage, Signale zu ermitteln. Ein Kaufsignal würde vorliegen, wenn der exponentielle gleitende Durchschnitt für zehn Kerzen größer ist, als der für fünfzig Kerzen und wenn gleichzeitig der Durchschnitt für fünfzig Kerzen größer ist, als für hundert Kerzen. In dem Fall möchten wir kaufen. Also weisen wir den Begriff Kaufen unserer Signal Variable zu. Im anderen Fall, wenn der gleitende Durchschnitt für zehn Kerzen kleiner ist, als der für fünfzig Kerzen und der gleitende Durchschnitt für fünfzig Kerzen kleiner ist, als der für hundert Kerzen, dann ist das für uns ein Verkaufssignal, also weisen wir den Begriff Verkaufen unserer Signalvariable zu. Und wenn unser Signal auf Verkaufen steht und uns die Funktion PositionsTolal einen Rückgabewert von kleiner ein...