MQL4 TUTORIAL GRUNDLAGEN – 116 SIMPLER ENVELOPES SELL TRAILING STOP

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man für diesen Indikator hier einen Sell Trailing Stop programmieren kann. Es handelt sich um den Envelopes-Indikator. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL4 programmiert. 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 Metaeditor auf und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen SimplerEnvelopesSellTrailingStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden und auch die zwei Kommentarzeilen können weg.

 

Wir starten damit, dass wir eine statische Variable erstellen. Das geht über diesen Zusatz static hier. Die Variable ist vom Typ double, damit sie auch Fließkommazahlen verarbeiten kann. Und diese Variable wird uns ermöglich beim erneuten Aufrufen dieser OnTick-Funktion auf den letzten Wert zurückzugreifen. Denn wenn man static einmal markiert und die F1-Taste drückt, dann lernt man, dass diese statischen Variablen über den kompletten Programmverlauf hin existieren. Damit wir etwas haben, womit wir den Trailing Stop testen können, müssen wir eine Test Sell Position aufmachen. Das würde man natürlich auf einem Echtgeldkonto nicht tun, aber dafür gibt’s ja Demokonten. Dazu testen wir, ob OrdersTotal einen Rückgabewert von 0 hat. Und wenn das so ist, dann bedeutet das, dass wir keine offene Position haben. Und dann nutzen wir OrderSend, um für das aktuelle Währungspaar eine Testposition für 10 Microlot zu eröffnen.

 

Anschließend setzen wir den Wert für den letzten Stop Loss Envelopes Wert hier auf 0, denn wenn wir eine neue Position eröffnen müssen wir den Trailing Stop auch wieder auf 0 setzen. Anschließend nutzen wir die Funktion iEnvelopes, die ist in MQL4 enthalten, und wir können sie nutzen, um für das aktuelle Währungspaar auf dem Chart und die auf dem Chart aktuell ausgewählte Zeiteinheit für 14 Kerzen ein Ergebnis zu berechnen. Wir nutzen hier MODE_SMA das steht für Simple Moving Average. Wir benötigen keinen Verschiebungswert. Das Ergebnis soll anhand der Schlusskurse berechnet werden. Dieser Wert, 0,10, ist das was Sie auch sehen, wenn Sie hier auf Einfügen, Indikatoren, Tendenz, Envelopes klicken. Hier sehen wir auch die 14 Kerzen und 0,10 für die Abweichung. Auf Englisch heißt das Deviation. Bitte bestätigen Sie das mit OK, dann sehen wir hier den Indikator auf dem Chart und jetzt klicken wir mit der rechten Maustaste, wählen Vorlagen, Vorlage speichern und speichern das Ganze unter dem Namen tester.tpl, denn das ist die Schablone, die wir gleich im Strategietester zu sehen bekommen.

 

Den aktuellen Wert können Sie ersetzen. Der vorletzte Parameter 2 oder 1 steht für das jeweilige Band. Wenn man iEnvelopes einmal markiert und die F1-Taste drückt, dann gibt es hier unten einen Link für Indicator Line und da sehen wir hier ist iEnvelopes aufgeführt. 1 entspricht dem oberen und 2 entspricht dem unteren Band. Genau das ist es auch, was wir hier nutzen. Der letzte Parameter hier, 1, der steht für die Nummer der Kerze, die wir berechnen möchten. Danach rufen wir eine Funktion mit dem Namen CheckEnvelopesSellTrailingStop auf und übergeben ihr den Parameter für das obere Band. Diese Funktion hier gibt es allerdings noch nicht, die müssen wir gleich noch programmieren. Als letzte Aktion in der OnTick-Funktion setzen wir den aktuellen Wert für das obere Band noch als letzten Stop Loss Wert für unser Envelopes-Band ein. So weit war es das mit der OnTick-Funktion. Weiter geht es mit der Funktion, die wir noch programmieren müssen. Die hat den Typ void, da wir keinen Rückgabewert benötigen. Der Name der Funktion ist Check EnvelopesSellTrailingStop.

 

Wir übergeben hier den Wert für das obere Envelopes-Band. Jetzt gehen wir mit einem Vorloop alle offenen Orders durch. Mit Hilfe von OrderSelect wählen wir für den jeweiligen Schleifenzähler die Position aus. Anschließend prüfen wir, ob das Währungspaar der Position zum Währungspaar auf dem Chart passt, und außerdem möchten wir noch wissen, ob der Ordertyp OP_SELL ist, also ob es um eine Verkaufsorder handelt, denn nur dann möchten wir weitermachen. Und natürlich möchten wir auch wissen, ob der aktuelle Order Stop Loss für die Position größer ist als das obere Band. Wenn alle diese Bedingungen zutreffen, dann nutzen wir OrderModify für das aktuelle OrderTicket und den OrderOpenPrice dieses Tickets, um den Stop Loss auf den aktuellen Wert für das obere Band zu verändern. Den TakeProfit-Wert belassen wir wie er ist. Wir setzen kein Ablaufdatum und wir benötigen auch keine Farbe. Bitte schließen Sie hier noch die Schleifen und auch die Funktion und das wars so weit auch schon. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus der Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie.

 

Den finden Sie auf unserer Webseite und da gibt’s auch einen Link zum Shop. Für den Moment klicken wir hier mal auf Kompilieren oder drücken die F7-Taste. Das hat bei mir ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerEnvelopesSellTrailingStop.ex4 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Unser Expert Advisor läuft schon einmal. Ich versuche mal eine Phase zu finden, wo man das gut erkennen kann. Und sobald hier das blaue Band nach unten verlagert wird, sollten wir auch sehen, dass der Sell Trailing Stop mitwandert. 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 Envelopes-Indikator einen Sell Trailing Stop programmieren können und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.