MQL5 TUTORIAL GRUNDLAGEN – 121 SIMPLER RSI SELL STOP LOSS

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor erstellen kann der in der Lage ist, bei einem RSI-Wert von über 70 eine Verkaufsposition zu eröffnen, die dann beim unterschreiten eines Wertes von 30 wieder geschlossen wird. Um das zu tun, klicken Sie im MetaTrader bitte hier oben auf dieses kleine Symbol oder drücken sie die F4-Taste. Das ruft dann hier den Metaeditor auf und hier klicken auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerRSISellStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include-Statement. Damit importieren wir diese Datei. Trade.mqh ist ein Bestandteil von MQL5 und das ermöglicht es uns eine Instanz der Klasse C-Trade zu erstellen. Die heißt trade und wir werden sie gleich nutzen, um eine Position zu eröffnen. Innerhalb der OnTick-Funktion berechnen wir zunächst den Ask-Preis und den Bid-Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen entweder SYMBOL_ASK oder SYMBOL_BID und mit NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar automatisch berechnen. Im nächsten Schritt erstellen wir uns ein Array. Das wird dann im Anschluss mit Hilfe der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit Hilfe, der in MQL5 enthaltenen Funktion iRSI können wir jetzt für das aktuelle Währungspaar auf dem Chart und die dort eingestellte Zeiteinheit für 14 Kerzen den Wert ermitteln, und zwar anhand der Schlusspreise. Mit Hilfe von CopyBuffer füllen wir jetzt unser RSIArray mit Daten für den Buffer 0. Angefangen von der aktuellen Kerze 0. Für drei Kerzen möchten wir die Daten anhand der Definition, die wir hier oben getroffen haben, in unserem Array speichern. Und jetzt können wir den Wert ermitteln, in dem wir uns einfach den Wert für Kerze 0 in unserem RSIArray holen und dieser Variable hier zuweisen. Denn diesen Wert brauchen wir jetzt, um zu überprüfen, ob PositionTotal 0 ist, das bedeutet, wir hätten keine geöffnete Position und ob der RSI-Wert größer ist als 70. Wenn beide Bedingungen erfüllt sind, dann nutzen wir trade.Sell, um eine Position für 10 Microlot zu eröffnen. Das ist eine Verkaufsposition. Und natürlich machen wir das nur auf einem Demokonto. Denn um unseren Stop zu testen, brauche wir ja eine geöffnete Position. Diese Funktion hier CheckRSISellStop die soll dann die Verkaufsposition wieder schließen. Wir übergeben hier den RSI-Wert. Zum Schluss unserer Hauptfunktion möchten wir noch einen Comment-Statement dazu nutzen, damit der RSI-Wert auch auf unserem Chart ausgegeben wird. Und das war´s soweit mit der OnTick-Funktion. Diese Funktion hier gibt es aber noch nicht. Die müssen wir jetzt erstellen. Unsere benutzerdefinierte Funktion soll den Namen CheckRSISellStop haben. Wir übergeben hier den RSI-Wert als Parameter. Mit Hilfe einer Vorschleife gehen wir alle offenen Positionen durch. Dann holen wir uns mittels der Funktion PositionGetSymbol für den aktuellen Schleifenzählerwert das Währungspaar für die Position. Außerdem brauchen wir noch die Ticketnummer. Die bekommen wir mit PositionGetInteger, POSITION_TICKET und den Positionstyp bekommen wir mit PositionGetInteger, POSITION_TYPE. Das ermöglicht uns zu prüfen, ob der Positionstyp den Wert POSITION_TYPE_SELL hat. Wenn das der Fall ist, dann handelt es sich um eine Verkaufsposition. In dem Fall prüfen wir hier noch, ob der RSI-Wert unter 30 liegt. Und wenn das stimmt, dann nutzen wir trade.PositionClose, um das aktuelle Positionsticket zu schließen. Zum Schluss schließen wir noch die Vorschleife und beenden unserer Funktion. Ich habe hier noch eine überschüssige Klammer, die wird noch entfernt. Und danach können wir hier oben auf Kompilieren klicken oder die F7-Taste drücken. Ich  habe hier ein Sonderzeichen, das entfernen wir jetzt mal. Danach wiederholen wir das. Und diesmal hat das auch funktioniert. Wenn Ihnen das hier zu schnell ging oder Sie keine Ahnung haben, was diese Codezeilen bewirken sollen, dann ist vielleicht der Premiumkurs auf unserer Webseite interessant für Sie. Falls das Kompilieren allerdings bei Ihnen hier ohne Fehler funktioniert, dann gehen wir jetzt erstmal zurück in den MetaTrader, in dem wir hier oben auf dieses kleine Symbol klicken oder die F4-Taste drücken. Im MetaTrader selbst klicken wir dann auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerRSISellStop.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. So bald diese blaue Linie hier über 70 kommt, sollte eine neue Position eröffnet werden. Das ist jetzt gerade geschehen. Und sobald die Linie unter den dreißiger Wert hier unten fällt, dann sollte die Position wieder geschlossen werden. Das kann manchmal eine ganze Weile dauern. Jetzt wurde die Position geschlossen. Unser Expert Advisor funktioniert also wie gewünscht und Sie haben in diesem kurzen Video gelernt, wie Sie einen Expert Advisor erstellen können, der eine Verkaufsposition eröffnen kann, wenn der RSI-Wert über 70 liegt und diese Position bei einem Wert von unter dreißig wieder schließen kann. Und Sie haben selbst programmiert mit diesen paar Zeilen hier in MQL5.