MQL5 Tutorial Deutsch – Fortgeschrittener SMA Expert Advisor

video
play-sharp-fill
Das, was hier im Hintergrund so fleißig vor sich hin handelt, ist ein Expert Advisor für einen Simple Moving Average. Diese rote Linie hier ist ein einfacher gleitender Durchschnitt. Der wird berechnet auf die letzten 20 Kerzen. Dieses System handelt hier so viele Positionen gleichzeitig, weil es sich um das Forex Trading Framework handelt. Damit ist es möglich, bis zu 200 Positionen pro Währungspaar automatisch zu handeln, und das auf bis zu 22 Währungspaaren gleichzeitig. Und wir wollen uns jetzt einmal anschauen, wie man ein Einstiegsmodul für ein solches System programmieren kann. Natürlich ist es nicht möglich, das ganze System innerhalb von 5 Minuten zu erklären, aber der Einstieg ist relativ einfach vermittelbar.
Dazu erstellen wir jetzt einen neuen Expert Advisor, und um das zu tun, klicken Sie einfach hier oben im MetaTrader auf dieses Symbol, oder drücken die F4 Taste, dann bekommen wir hier den Meta-Editor angezeigt. Und hier wählen wir „Datei/ Neu/ Expert Advisor (Vorlage)/ Weiter“. Ich vergebe hier einmal den Namen „FortgeschrittenerSMA“, klicke auf „Weiter/ Weiter/ Fertigstellen“. Alle Inhalte hier können gelöscht werden, denn wir möchten uns eine Funktion mit dem Namen „CheckEntry“ erstellen. In dieser Funktion erstellen wir uns zunächst ein Array für die Preisdaten, das wird den Namen „PriceInfo“ erhalten. Und die Funktion „MqlRates“ bewahrt die Informationen über die Preise und das Volumen und die Spreads auf; das bedeutet, für jede Kerze bekommen wir den Eröffnungspreis, den Höchstpreis, den niedrigsten Preis, und den Schlusskurs, neben ein paar anderen Informationen. Dieses Array sortieren wir jetzt von der aktuellen Kerze an abwärts. Das übernimmt für uns die Funktion „ArraySetAsSeries“, und danach füllen wir das Array mit Preisdaten für 3 Kerzen. Das übernimmt die Funktion „CopyRates“. Die braucht ein paar Parameter, z.B. das aktuelle Währungspaar auf dem Chart, die dort auf dem Chart ausgewählte Handelsperiode, z.B. 1 Minute oder 1 Stunde. Wir kopieren die Daten von der aktuellen Kerze 0 für 3 Kerzen und speichern das Ergebnis in unserem Array „PriceInfo“. Für unser Signal brauchen wir jetzt noch eine String-Variable; die bekommt auch den Namen „Signal“ zugewiesen, allerdings hier noch keinen Wert, denn den wollen wir ja gleich erst noch berechnen. Für den Simple Moving Average brauchen wir ebenfalls noch ein Array, das bekommt den Namen „myMovingAverageArray“ zugewiesen. Die Eigenschaften dafür müssen wir jetzt noch definieren. Und wenn man sich hier diesen gleitenden Durchschnitt einmal anschaut, dann sieht man bereits eine 20 in den runden Klammern. Das ist die Anzahl der Kerzen. Wenn man mit der rechten Maustaste auf die Linie klickt und sich die Eigenschaften von Moving Average anzeigen lässt, dann sehen wir hier 20 Kerzen, einen Verschiebungs-Wert von 0; es handelt sich um einen Simple Moving Average der auf den Schluss-Preis, also auf den „Close Price“, berechnet wird. In MQL5 sieht das dann so aus: wir nutzen die integrierte Funktion „iMA“ für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit für die 20 Kerzen mit dem Verschiebungs-Wert 0, so, wie auch hier angezeigt wurde, und wir nutzen „MODE_SMA“, da es sich um einen Simple Moving Average handelt.
Berechnet wird anhand des Close Price, darum nutzen wir im letzten Parameter „PRICE_CLOSE“. Auch dieses Array sortieren wir wieder abwärts von der aktuellen Kerze an und nutzen anschließend „CopyBuffer“, um für unseren definierten Expert Advisor für genau 1 Linie im Buffer 0, von Kerze 0 an für 3 Kerzen -darum diese 3- die Daten für den Simple Moving Average in unserem Array zu speichern.

Und wenn der Preis über dem Simple Moving Average liegt, wenn also der Schlusskurs für Kerze 1 in unserem „PriceInfo“-Array größer ist, als der Wert für Kerze 1 in unserem „MovingAverage“-Array – das wäre in diesem Fall hier: die Preise liegen über unserem Moving Average -, dann möchten wir noch prüfen, ob er vorher darunter war; das wäre dann so eine Überkreuzung hier.
Also, wenn der Schlusskurs für Kerze 2 aus unserem PriceInfo-Array kleiner war, als der Wert für Kerze 2 in unserem MovingAverage-Array, dann handelt es sich um eine Überkreuzung, und wir möchten kaufen, darum weisen wir der Variable „Signal“ hier den Wert „Kaufen“ zu.
Natürlich gibt es auch noch den umgekehrten Fall: wenn der Preis jetzt unter dem Simple Moving Average liegt und vorher darüber war, in diesem Fall möchten wir gerne verkaufen.
Zum Schluss liefern wir noch das Signal an das Hauptmodul zurück; das geschieht mit dem Befehl “Return“. In meinem Fall ist das Hauptmodul hier das Golden Goose Framework vom Oktober 2017. Hier werden diverse Funktionen aus einer Bibliothek importiert, die für die Verwaltung der ganzen offenen Positionen hier benötigt werden. Das geschieht vollautomatisch. Hier kann man noch das Trading-Risiko einstellen.
Und hier unten wird unser neues Einstiegsmodul importiert, das habe ich hier mal unter dem Namen „CheckEntry_SMA_DE“ gespeichert damit es zu der Konvention von den anderen Einstiegsmodulen passt, denn mit dem gleichen Framework könnte man auch den RSI, den MACD, die Bollinger Bänder oder eine Überkreuzung von zwei gleitenden Durchschnitten handeln.
Kompilieren wir das Framework hier einmal. Das hat ohne Fehler und Warnungen funktioniert, und darum kann ich jetzt hier oben klicken, um in den MetaTrader zurückzukehren. Und im MetaTrader klicken wir auf „Ansicht/ Strategietester“, oder drücken Strg+R, wählen hier das Forex Trading Framework vom 10. Oktober 2017 aus. Bei den Eingaben habe ich hier mal einen sehr hohen Wert von 20 für das Trading-Risiko eingestellt. Wir handeln das Jahr 2016 und starten jetzt mal einen Test. So sieht unser Handelsverlauf graphisch dargestellt aus. Hier oben werden mehrere Positionen gleichzeitig gehandelt, und wie man sieht, bekommt man einen relativ guten Eindruck davon, wie der Expert Advisor hier weiter handelt. Wir sind jetzt bei EUR 13.000,- brutto angekommen. Die Equity ist Cashflow positiv, das bedeutet, wenn wir alle Positionen schließen würden, wären wir bereits im Plus. Schauen wir mal, ob das noch schneller geht.
So sieht das Ganze dann nach gut vier Monaten aus, und Sie haben in diesem einfachen Beispiel gelernt, wie Sie mit diesen paar Zeilen hier in MQL5 ein Einstiegssignal für das Forex Trading Framework oder Ihr eigenes Handelssystem erstellen können. Falls Sie noch nicht genau wissen, was das Forex Trading Framework ist, oder wie Sie selbst eines programmieren können, dann finden Sie weitere Details dazu auf meiner Webseite.

Download “MQL5 TUTORIAL DEUTSCH - FORTGESCHRITTENER SMA EXPERT ADVISOR”

FortgeschrittenerSMA.txt – 232-mal heruntergeladen – 1,48 kB