MQL5 TUTORIAL GRUNDLAGEN – 64 SIMPLER MULTI RSI

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man mit MQL5 eine Expert Advisor erstellen kann, der in der Lage ist, für den RSI unterschiedliche Zeitrahmen zu berechnen. Wir haben hier den Wert für die aktuelle Zeiteinheit für dreißig und für sechzig Minuten. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das ruft dann hier den Meta Editor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage. Weiter. Ich vergebe hier einmal den Namen SimplerMultiRSI, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können weg. Wir starten hier oben mit dem include Befehl. Damit importieren wir uns die Datei Trade.mqh. Die ist Bestandteil von MQL5 und stellt uns vereinfachte Handelsfunktionen bereit. Dazu erstellen wir uns eine Instanz von der Klasse CTrade. Die bekommt den Namen trade und wir werden sie später benutzen, um damit Positionen zu eröffnen. Innerhalb der OnTick Funktion berechnen wir uns den Ask und den Bid Preis. Das macht die Funktion SymbolInfoDouble für das aktuelle Symbol, also das Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK für den Ask Preis beziehungsweise SYMBOL_BID für den Bid Preis. Und mit NormalizeDouble und _Digits stellen wir sicher, dass die Anzahl der Stellen hinter dem Punkt für das jeweilige Währungspaar korrekt angezeigt werden. Je nach Währung können das drei oder fünf Nachkommastellen sein. Danach erstellen wir eine string Variable mit dem Namen Signal. Die bekommt hier noch keinen Wert, denn, den möchten wir jetzt ermitteln. Dazu erstellen wir zunächst einmal drei Arrays für das aktuelle, das dreißig Minuten Chart und das sechzig Minuten Chart. Fangen wir mit dem aktuellen Zeitfenster an. Die Funktion iRSI ist in MQL5 enthalten. Und wir übergeben hier als Parameter das aktuelle Währungspaar., die aktuell auf dem Chart ausgewählte Zeiteinheit. Wir möchten gerne den Wert für 14 Kerzen aufgrund der Schlusskurse berechnen lassen. Danach verwenden wir ArraySetAsSeries, um unser Array für die aktuellen Werte von der aktuellen Kerze an abwärts zu sortieren. Jetzt können wir es mit CopyBuffer füllen. Und zwar anhand der Definition, die wir hier oben getroffen haben, für Buffer null, von der aktuellen Kerze. Das ist die Kerze null. Wir kopieren uns die Werte für drei Kerzen und speichern sie in unserem Array. Und um den aktuellen Wert zu berechnen holen wir uns einfach für die aktuelle Kerze null den Wert aus unserem Array. Und mit NormalizeDouble und dieser zwei hier, schneiden wir das Ganze auf zwei Nachkommastellen ab. Denn das ist auch die Darstellung, die wir hier im Oszillator sehen. Damit hätten wir jetzt also den Wert für das aktuelle Chart. Und um den Wert für die dreißig Minuten zu berechnen, machen wir quasi dasselbe noch einmal. Die Variable heißt natürlich anders. Und wir nutzen hier die eingebaute iRSI Funktion und übergeben statt _Period diesen Wert, PERIOD_M30. Wenn man den markiert und die F1 Taste drückt, dann sieht man, dass für so ziemlich jede denkbare Chartperiode hier die entsprechenden Werte zur Verfügung stehen. PERIOD_M30 steht für dreißig Minuten. PERIOD_H1 steht für eine Stunde und so weiter. Wir hätten das gerne für dreißig Minuten. Auch hier sortieren wir unser Array, nutzen dann CopyBuffer, um anhand der hier oben getroffenen Definition unser Array mit Werten zu füllen. Und um den dreißig Minuten Wert zu ermitteln, greifen wir auch wieder auf die aktuelle Kerze null in unserem Array zu. Die Berechnung für sechzig Minuten ist jetzt keine Überraschung mehr. Vom Prinzip wiederholt sich alles. Nur, dass wir diesmal für sechzig Minuten den Wert PERIOD_H1 benutzen. Und auch hier greifen wir auf die aktuelle Kerze null in unserem Array zu, um den Wert zu ermitteln. Da wir ja alle Signale miteinander kombinieren möchten, prüfen wir jetzt, ob für jeden unserer drei ermittelten Werte der Wert größer ist als siebzig. Das wäre der Fall, wenn diese Signallinie hier unten oberhalb der gestrichelten Linie im Oszillator liegt. Und wenn das der Fall ist, dann möchten wir verkaufen. Deswegen weisen wir dann unserer Signal Variable den Wert sell zu. Im anderen Fall, wenn alle drei Werte kleiner sind als dreißig, das würde bedeuten, die Signallinie liegt unterhalb der unteren gestrichelten Linie, und in dem Fall möchten wir verkaufen. Und dann weisen wir den Begriff buy unserer Signal Variable zu. Wenn wir jetzt einen Signalwert zum Verkaufen haben, prüfen wir, ob der Rückgabewert der Funktion PositionTotal kleiner ist als eins. Das würde nämlich bedeuten, wir haben keine offene Position. Ein Verkaufssignal. Und dann nutzen wir trade.Sell, um zehn Mikrolot zu verkaufen. Anders herum, wenn unser Signal den Wert buy hat und wir ebenfalls keine geöffnete Position haben, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Zum Schluss erstellen wir uns noch eine Chartausgabe. Das geht mit dem Comment Befehl. Der soll uns hier die einzelnen Werte für die jeweiligen Zeitfenster anzeigen, gefolgt von dem ermittelten Signal. Und das war es auch soweit. Wenn Ihnen das hier zu schnell ging oder wenn Sie nicht verstehen, was alle diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht vorher noch die Videos aus dieser Grundlagenserie anschauen. Oder eventuell ist auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf Kompilieren. Das sollte ohne Fehler funktionieren. Und wenn das bei Ihnen auch der Fall ist, dann klicken Sie bitte hier oben oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Und im Metatrader nehme ich ein neues Chart. Danach klicken wir auf Einfügen, Indikatoren, Oszillatoren, Relative Strength Index. Die Standardwerte können wir hier so übernehmen. Wir möchten 14 Kerzen. Die Berechnung soll anhand des Schlusskurses erfolgen. Also klicken wir hier auf Okay. Und dann wird uns hier unten der Oszillator angezeigt. Und im Anschluss suche ich mir hier die neu erstellte Datei SimplerMultiRSI heraus und ziehe sie auf das Chart von meinem Demo Konto, bestätige mit Okay. Und dann kann man sehen, dass hier oben die Werte bereits berechnet werden. Der Wert für das aktuelle Chart sollte übereinstimmen mit dem, was hier unten der Oszillatorwert anzeigt. Jetzt wechseln wir mal das Zeitfenster auf dreißig Minuten. Und jetzt sollten der mittlere Wert und der Oszillatorwert übereinstimmen. Das ist in meinem Fall korrekt. Und für die Stunde ist dann der dritte Wert, den wir hier sehen, identisch mit dem Wert aus dem RSI Indikator hier unten. Natürlich kann man jetzt auch auf Ansicht, Strategietester klicken. Und hier für die neu erstellte Datei einen Strategietest starten. Da werden auch Positionen eröffnet. Es ist allerdings hier schwer herauszufinden, ob die ermittelten Werte korrekt sind. Darum mache ich das hier auf dem Demo Konto im Echtzeitbetrieb. Und im Strategietester kann man sehen, dass unser Expert Advisor funktioniert wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den RSI Oszillator unterschiedliche Zeiteinheiten ermitteln und als Einstiegssignal nutzen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier, in MQL5.