MQL5 TUTORIAL GRUNDLAGEN – 120 SIMPLER RSI BUY STOP

video

 

In diesem Video wollen wir uns einmal anschauen, wie man einen RSI Indikator erstellt, der eine Position eröffnet, wenn der Wert unter dreißig liegt und diese Position wieder schließen, sobald der Wert über siebzig steigt. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader 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 SimplerRSIBuyStop, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Und wir entfernen auch die zwei Kommentarzeilen. Wir starten mit einer include Anweisung. Die wird uns die Datei Trade.mqh importieren. Die stellt uns dann wiederum die Klasse CTrade zur Verfügung, von der wir hier eine Instanz erstellen. Die bekommt den Namen trade. Innerhalb der OnTick Funktion nutzen wir SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart, um uns den Ask Preis oder den Bid Preis zu ermitteln. Dazu übergeben wir als Parameter SYMBOL_ASK beziehungsweise SYMBOL_BID. Und mit NormalizeDouble und _Digits stellen wir sicher, dass wir automatisch die richtige Anzahl der Nachkommastellen für das jeweilige Währungspaar berechnen.

 

Im Anschluss erstellen wir uns hier ein Array vom Typ double. Mit ArraySetAsSeries wird unser Array dann von der aktuellen Kerze an abwärts sortiert. Und jetzt können wir die in MQL5 eingebaute Funktion iRSI nutzen, um für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit für 14 Kerzen den Wert anhand der Schlusskurse zu ermitteln. Wir nutzen CopyBuffer, um anhand der Definition die wir gerade getroffen haben für das aktuelle Buffer null, angefangen von der aktuellen Kerze Nummer null, für drei Kerzen die Daten in unser RSI Array zu kopieren. Und jetzt berechnen wir den aktuellen Wert, indem wir einfach den Wert für Kerze null aus unserem RSI Array ermitteln. Mit NormalizeDouble und zwei stellen wir sicher, dass der Wert auf zwei Nachkommastellen gekürzt wird. Denn so wird er auch von unserem Indikator auf dem Chart angezeigt. Sofern wir keine geöffnete Position haben, ist der Rückgabewert für PositionsTotal null. Und wir möchten gleichzeitig ermitteln, ob der RSI Wert unter dreißig liegt. Das wäre dann für uns ein Kaufsignal. Und dann nutzen wir trade.Buy, um eine Kaufposition für zehn Mikrolot zu eröffnen. Es handelt sich hier um eine Testposition. Und die möchten wir danach über eine selbsterstellte Funktion mit dem Namen CheckRSIBuyStop schließen. Dazu übergeben wir hier den aktuellen RSI Wert als Parameter.

 

Damit wir auch was sehen nutzen wir die Comment Ausgabe, um auf dem Chart den aktuellen RSI Wert auszugeben. Diese Klammer hier schließt unsere Hauptfunktion. Aber damit wir diese Funktion hier auch nutzen können, müssen wir die jetzt noch programmieren. Unsere benutzerdefinierte Funktion soll den Namen CheckRSIBuyStop erhalten. Und wir übergeben hier den aktuellen RSI Wert. Mit Hilfe einer For-Schleife gehen wir alle offenen Positionen durch und holen uns für jede Position das aktuelle Währungspaar. Das geht mit der Funktion PositionsGetSymbol für den aktuellen Schleifenzähler. Außerdem ermitteln wir das Ticket der jeweiligen Position mit dem Befehl PositionGetInteger. Hier verwenden wir als Parameter POSITION_TICKET. Bitte alles in Großbuchstaben. Für den Positionstypen erfolgt die Ermittlung ähnlich. Auch hier nutzen wir PositionGetInteger und diesmal ist der Parameter POSITION_TYPE. Denn damit können wir prüfen, ob der Typ der aktuellen Position den Wert POSITION_TYPE_BUY hat. Denn dann ist es eine Buy-Position und nur dann möchten wir weitermachen. Nachdem wir das geprüft haben, möchten wir für den Fall, dass der aktuelle RSI Wert größer ist als siebzig, unsere Position mit Hilfe der Funktion trade.PositionClose für das aktuelle Positionsticket schließen. Zum Schluss müssen wir noch die For-Schleife und die Funktion schließen. Und das war es auch schon soweit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Code Zeilen hier bedeuten, dann möchten Sie sich vielleicht zunächst eines der Grundlagenvideos noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie.

 

Den finden Sie auf unserer Webseite. Und dort gibt es jetzt auch Links zu unserem Shop, wo Sie solche Quellcodes hier herunterladen können. Das hier war übrigens wieder eine Idee von einem Premiumkurs Mitglied. Und wenn Sie bereits Premium Mitglied sind und eine Idee für so ein Video haben, dann schicken Sie mir einfach ein E-Mail. Für den Moment klicken wir hier oben auf Kompilieren oder drücken die F7 Taste. Ich habe hier eine Klammer, die ist überschüssig, also entfernen wir die noch. Und löschen auch die leeren Zeilen hier. Danach drücken wir nochmal den Kompilieren Button hier oder drücken F7. Diesmal hat das ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um wieder in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Bitte wählen Sie hier die neuerstellte Datei SimplerRSIBuyStop.ex5 aus. Markieren Sie hier unten den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Ich beschleunige das einmal. Denn sobald er unter dreißig Punkte fällt, sollten wir eine neue Position auf unserem Chart entdecken. Das kann eine ganze Weile dauern. Aber jetzt sieht es so, als ob die Position eröffnet wurde. Das funktioniert also schon einmal.

 

Fehlt noch der zweite Teil. Dazu muss der Wert für den RSI hier über siebzig steigen, damit die Position geschlossen wird. Das ist jetzt gerade passiert. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den RSI Indicator einen Expert Advisor erstellen können, der in der Lage ist, Position zu öffnen und auch anhand der RSI Werte wieder zu schließen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier, in MQL5.