MQL5 TUTORIAL GRUNDLAGEN – 72 SIMPLER TRIPPLE EMA

video

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 eins gibt, dann haben wir keine geöffnete Position und dann möchten wir kaufen. Also nutzen wir trade.Sell, um zehn Mikrolot zu kaufen. Andernfalls, wenn unser Signal auf Kaufen steht und wir ebenfalls keine geöffnete Position haben, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Zum Schluss erstellen wir uns hier mit dem Comment Befehl noch eine Ausgabe aus dem Chart. Die wird uns den Text ausgeben: Das aktuelle Signal ist… gefolgt von dem von uns ermittelten Signal. Okay, das war es im Großen und Ganzen. Wenn Ihnen das hier zu schnell ging oder wenn Sie nicht wissen, was alle diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus diesen Grundlagenvideos noch einmal anschauen. Oder vielleicht ist auch unser Premiumkurs interessant für Sie. Denn den finden Sie auf unserer Webseite. Für den Moment klicken Sie bitte hier auf Kompilieren oder drücken die F7 Taste. Das sollte hier ohne Fehler abgehen. Und wenn das bei Ihnen auch der Fall ist, dann klicken Sie hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Und Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Das ruft dann hier den Strategietester auf. Bitte wählen Sie hier die neu erstellte Datei SimplerTrippleEAM.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unsere Expert Advisor auch schon los. Wir sehen die drei gleitenden Durchschnitte. Wenn Sie mit der Maus darüber gehen, dann sehen Sie auch, welcher Durchschnitte jeweils berechnet wird. Aktuell haben wir kein Signal. Wenn hier noch eine weitere Überkreuzung stattfindet, dann sollte das hier auf Kaufen springen. Das ist jetzt grade passiert. Unser Expert Advisor funktioniert als wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für einen dreifachen exponentiellen Durchschnitt einen Expert Advisor programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL5.