MQL5 TUTORIAL GRUNDLAGEN – 25 SO PROGRAMMIEREN SIE EINEN SHIFTED SMA

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man so einen Indikator hier programmieren kann. Es handelt sich um einen verschobenen gleitenden Durchschnitt, einen sogenannten Shifted Moving Average. Der rote gleitenden Durchschnitt hier, ist ein normaler Moving Average. Und der grüne ist der gleiche Moving Average, zwanzig Kerzen in die Zukunft verschoben. Und wir wollen jetzt einmal anschauen, wie man so was programmiert und wie man damit kaufen und verkaufen Signale erstellen kann. Um das zu tun, klicken Sie im Metatrader bitte 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, Neu, Expert Advisor aus Vorlage. Ich vergebe hier mal den Namen SimplerShifteSMAEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt können Sie alles löschen, was sich oberhalb dieser OnTick Funktion befindet. Und auch die zwei Kommentarzeilen werden entfernen. Wir starten mit einem include Befehl und importieren uns die Datei Trade.mqh. Die enthält Handelsfunktionen. Und damit erstellen wir uns jetzt von der Klasse CTrade eine Instanz mit dem Namen trade. Die werden wir später benutzen, um Positionen zu eröffnen. Damit wir das können, müssen wir den Aks Preis und den Bid Preis berechnen. Das geht mit der Funktion SymbolInfoDouble. Der erste Parameter _Symbol steht für das aktuelle Währungspaar auf dem Chart. Parameter Nummer zwei, SYMBOL_ASK, wird benutzt, um den Ask Preis zu ermitteln. Bitte alles in Großbuchstaben schreiben. Und mit NormalizeDouble und _Digits stelle ich sicher, dass ich je nach Währungspaar die jeweils richtige Anzahl von Nachkommastellen berechne. Dieses Währungspaar hier hat drei Nachkommastellen, während andere Währungspaar fünf Nachkommastellen haben. Das Gleiche machen wir hier noch mal mit SYMBOL_BID, um Bid Preis zu errechnen. Danach erstellen wir uns für unser Signal eine string Variable, weisen hier aber noch keinen Wert zu, denn der muss noch ermittelt werden. Für unseren ersten gleitenden Durchschnitt erstellen wir uns ein Moving Average Array. Das Ganze machen wir auch noch mal für den verschobenen gleitenden Durchschnitt, also für den Shifted Moving Average. Unser normaler gleitender Durchschnitt wird mit der Funktion iMA erstellt. Und zwar für das aktuelle Währungspaar auf dem Chart und die auf dem Chart aktuell ausgewählte Zeiteinheit. Wir möchten das Ergebnis aufgrund der letzten zwanzig Kerzen zunächst ohne Verschiebung errechnen. Dazu nutzen wir MODE_SMA für Simple Moving Average. Und das Ganze soll errechnet werden anhand der Schlusskurse. Um das Ganze für den Shifted Moving Average zu berechnen, nutzen wir die gleichen Parameter, einen etwas anderen Namen. Und dieses Mal verändern wir den Verschiebungsparameter und machen eine zwanzig draus. Das sorgt dann dafür, dass der aktuelle gleitenden Durchschnitt noch einmal gezeichnet wird, dieses Mal zwanzig Kerzen in die Zukunft verschoben. Für jedes Array nutzen wir jetzt noch ArraySetAsSeries um von der aktuellen Kerze an, die Preise absteigend zu sortieren mit CopyBuffer. Danach nutzen wir CopyBuffer, um anhand der Moving Average Definition, die wir hier oben getroffen haben, für Buffer null, also die einzige Linie, die wir bei dem Indikator für einen gleitenden Durchschnitt sehen, von der aktuellen Kerze null für drei Kerzen, die Preisdaten zu kopieren und in unserem MovingAverageArray zu speichern. Das Ganze wiederholen wir noch mal für den Shifted Moving Average. Bitte achten Sie darauf, dass Sie den Namen und den Namen für das Array entsprechend abändern. Ansonsten ist auch diese Zeile identisch. Das Gleiche gilt für die nächsten beiden Zeilen. Hier greifen wir nämlich auf Kerze null im MovingAverageArray zu, um den aktuellen Wert für den aktuellen gleitenden Durchschnitt zu ermitteln. Und der Wert in Kerze null für den verschobenen, also für den ShiftedMovingAverage wird der Variable myShiftedAverageValue zugewiesen. Und wenn der MovingAverage größer ist, als der ShiftedMovingAverage, dann ist das für uns ein Kaufen Signal. Darum weisen wir den Begriff buy unserer signal Variable zu. Im anderen Fall, wenn der MovingAverage Wert kleiner ist, als der Wert für den verschobenen gleitenden Durchschnitt, dann ist das ein Verkaufen Signal und darum weisen wir den Begriff sell unserem signal zu. Und wenn unser signal auf Verkaufen steht, und uns die Funktion PositonsTotal einen Wert kleiner eins zurückliefert, dann haben wir keine geöffneten Positionen. Und in dem Fall nutzen wir trade.Sell um zehn Mikrolot zu verkaufen. Im anderen Fall, wenn wir ein kaufen Signal haben und ebenfalls keine geöffnete Position gefunden wurde, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Letztendlich möchten wir noch eine Ausgabe auf dem Chart erstellen. Das macht die Comment Funktion. Die gibt uns dann aus: Das Signal ist, gefolgt von dem durch uns ermittelten Signal. Und das war es soweit. Wenn Ihnen das hier alles noch nicht klar ist, oder wenn Ihnen das alles zu schnell war, dann möchten Sie sich vielleicht die anderen Videos aus diesem Grundlagenkurs anschauen. Oder vielleicht ist auch der Premium Kurs interessant für Sie. Für jetzt klicken wir auf Kompilieren. Das sollte hier ohne Fehler und Warnungen abgehen. Und in dem Fall können Sie hier oben klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader bauen wir uns noch eine Schablone für den Backtest, damit wir die gleitenden Durchschnitte auch richtig sehen. Dazu klicken Sie auf einem leeren Chart einfach auf Einfügen, Indikatoren, Tendenz, Moving Average. Hier wählen wir zwanzig Kerzen, eine Verschiebung von Null, die Methode Simple und Anwenden auf Close aus. Die Farbe soll Rot sein. Danach klicken wir auf Okay. Dann wird hier unser gleitender Durchschnitt dargestellt. Das Ganze wiederholen wir noch mal. Einfügen, Indikatoren, Tendenz, Moving Average. Dieses Mal wählen wir aber eine Verschiebung von zwanzig Kerzen aus. Und dieses Mal soll die Farbe Grün sein. Und dann sehen wir hier diese verschobene Darstellung. Wenn Sie das auch haben, dann klicken Sie mit der rechten Maustaste. Wählen Vorlagen, Vorlage speichern. Und speichern Sie das Ganze bitte als tester.tpl ab. Die aktuelle Schablone kann ersetzt werden. Und wenn Sie hier unten den Strategietester noch nicht sehen, dann klicken Sie jetzt bitte auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Ctrl+R. Hier wählen wir die neu erstellte Datei SimplerShiftedSMAEA.ex5 aus, markieren die Option für die Visualisierung und starten unseren Test. Und hier legt unser Expert Advisor auch schon los. Das aktuelle Signal ist Buy, also kaufen. Und sobald hier eine Überkreuzung entsteht, dreht sich das Ganze auf Verkaufen. Und Sie haben in diesem kurzen Video gelernt, wie man für einen verschobenen gleitenden Durchschnitt ein Einstiegssignal nicht nur programmieren, sondern auch mit MQL5 automatisch handeln kann. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.