MQL5 TUTORIAL GRUNDLAGEN – 22 SO PROGRAMMIEREN SIE DEN RSI EXPERT ADVISOR

video

In diesem Video wollen wir uns einmal anschauen, wir man für diesen Oszillator hier, für den RSI, einen Expert Advisor programmieren kann, der in der Lage ist, nicht nur Signale zu generieren, sondern auch automatisch zu handeln. Der RSI ist auch bekannt als Relative Strength Index. Es handelt sich um einen Oszillator. Und wir wollen uns jetzt einmal anschauen, wie man sowas in MQL5 programmiert. Um das zu tun, klicken Sie im Metatrader bitte auf dieses 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 SimplerRSIEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann hier alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen kommen weg. Wir starten mit einem include Befehl. Der wird uns die Datei trade.mqh importieren, die zu MQL5 dazugehört und Handelsfunktionen bereitstellt. Damit können wir uns von der Klasse CTrade eine Instanz mit dem Namen trade erstellen. Die werden wir später nutzen, um damit auch Positionen zu eröffnen. Dazu berechnen wir erst einmal den Ask Preis und den Bid Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart und die auf dem Chart abgebildete Zeiteinheit. Wir nutzen SYMBOL_ASK, alles in Großbuchstaben, um den Ask Preis zu ermitteln. Mit NormalizeDouble und _Digits ermitteln wir die Anzahl der Ziffern nach dem Dezimalpunkt. Das ist bei manchen Währungspaaren dreistellig und bei anderen fünfstellig. Für den Bid Preis sieht die Zeile nahezu identisch aus. Diesmal verwenden wir SYMBOL_BID, alles in Großbuchstaben bitte. Danach erstellen wir eine Variable für das Signal. Die bekommt auch den Namen Signal, aber zunächst noch keinen zugewiesenen Wert. Denn, den möchten wir gleich noch berechnen. Dazu erstellen wir uns ein Array für die Preisdaten. Ich vergebe hier mal den Namen MyRSIArray. Mit ArraySetAsSeries sortieren wir das Preis Array von der aktuellen Kerze an absteigend. Und jetzt nutzen wir die eingebaute Funktion iRSI um für das aktuelle Währungspaar und die aktuell auf dem Chart ausgewählte Zeiteinheit, den RSI Wert zu berechnen. Hier steht eine 14. Schauen wir mal, was das zu bedeuten hat. Wenn Sie auf einem beliebigen Chart auf Einfügen, Indikatoren, Oszillatoren, Relative Strength Index klicken, dann sehen Sie hier, dass für die Periode 14 eingetragen ist. Das ist der Standardwert. Und der RSI wird auf 14 Kerzen anhand der Schlusskurse berechnet. Bestätigen wir das mal mit Okay. Dann haben wir hier auch den Oszillator im Chart. Und damit wir das gleich auch im Strategietester sehen, klicken wir mit der rechten Maustaste, wählen Vorlagen, Vorlage speichern und speichern die Schablone als tester.tpl. Denn das ist die Schablone, die im Strategietest verwendet wird. Die aktuelle tester.tpl wird überschrieben. Jetzt ist auch klar, wofür die letzten beiden Parameter stehen. Nämlich für 14 Kerzen und den Schlusskurs. Danach nutzen wir CopyBuffer um unser RSIArray anhand der RSI Definition, die wir hier oben getroffen haben, mit Daten zu füllen. Und zwar für Buffer null, das ist diese blaue Signallinie hier, angefangen von Kerze null, kopieren wir uns für drei Kerzen die Preisdaten und speichern sie in unserem RSIArray. Das ermöglicht uns jetzt, einen RSI Wert zu berechnen, indem wir uns den Wert aus Kerze null aus dem RSIArray holen. Mit NormalizeDouble und diesem Komma zwei Wert hier sorgen wir dafür, dass der Wert auf zwei Nachkommastellen gekürzt wird, so wie hier im Indikator auch angegeben. Und wenn der RSI Wert größer ist als siebzig, das bedeutet, die Signallinie würde oberhalb dieser gestrichelten Linie sein, dann ist das für uns ein Verkaufssignal. Also weisen wir den Begriff sell unserer Signal Variable zu. Im anderen Fall, wenn der RSI Wert kleiner ist als dreißig, dann bedeutet das, dass die blaue Linie unterhalb der unteren gestrichelten Linie ist. In dem Fall möchten wir kaufen. Also weisen wir den Wert buy unserer Signal Variable zu. Denn wir erwarten, dass der Preis wieder hochgeht. Und wenn unser Signal auf sell steht und die Funktion PositionsTotal kleiner ist als eins, dann haben wir keine geöffneten Positionen, ein Verkaufen Signal. Und in dem Fall nutzen wir trade.Sell, um zehn Mikrolot zu verkaufen. Andernfalls, wenn das 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 mit der Comment Funktion noch eine Ausgabe auf dem Chart. Dort wird der Text stehen: das aktuelle Signal ist, gefolgt von dem von uns ermittelten Signal. Das war es soweit. Wenn Sie alles haben, können Sie hier oben auf Kompilieren klicken oder die F7 Taste drücken. In diesem Fall ging das ohne Fehler und Warnungen ab. Wenn Sie Fehler haben oder nicht wissen, was der Code hier macht, dann möchten Sie sich vielleicht vorher die anderen Grundlagenvideos aus dieser Video Serie ansehen. Oder vielleicht ist auch der Premium Kurs interessant für Sie. Andernfalls können Sie jetzt hier oben auf dieses Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Bitte denken Sie daran, diese Schablone hier als tester.tpl zu speichern. Sonst sehen Sie nach dem letzten Metatrader Update eventuell den RSI Indikator im Backtest nicht. Und danach klicken Sie auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrs+R. Hier wählen wir jetzt die neue Datei SimplerRSIEA.ex5 aus, markieren die Option für die Visualisierung und starten unseren Test. Uns so sieht das Ganze dann im laufenden Betrieb aus. Unser RSI produziert hier Signale. Jetzt haben wir die erste Kaufposition. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den RSI Oszillator eine Expert Advisor für den Metatrader 5 programmieren können. Der nicht nur Signale ermitteln, sondern auch automatisch handeln kann. Und Sie haben das selbst programmiert, mit diesen paar Zeilen, hier im MQL5.