MQL4 TUTORIAL GRUNDLAGEN – 115 SIMPLER ENVELOPES BUY TRAILING STOP

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor erstellen kann der mit diesem Indikator hier einen Buy-Stop-Loss nachziehen kann. Es handelt sich hier um den Envelopes-Indikator. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL4 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 Metaeditor auf und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerEnvelopesBuyTrailingStop, klicke auf weiter, weiter und fertigstellen.

 

Jetzt kann hier alles oberhalb der OnTick-Funktion gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten hier mit einer statischen Variable. Die soll uns den letzten Wert des Stop-Loss-Envelopes-Wertes aufnehmen und damit wir den Stop-Loss ausprobieren brauchen wir natürlich eine Position. Sofern wir also keine offene Position haben, wird uns der Wert OrdersTotal einen Wert von 0 zurückgeben und dann nutzen wir hier OrderSend, um eine Testkaufposition für zehn Microlot zu eröffnen. Natürlich würde man das nur auf einem Demokonto tun. Gleichzeitig setzen wir hier den letzten Stop-Loss-Wert auf 0, denn mit einer neuen Position brauchen wir natürlich auch einen neuen Wert. Im nächsten Schritt berechnen wir hier die Werte für das untere und das obere Band des Envelopes-Indikators. Das kann die Funktion iEnvelopes für uns übernehmen. Die benötigt einige Parameter. Der erste Parameter steht für das aktuelle Währungspaar, der Zweite für die auf dem Chart ausgewählte Zeiteinheit. Wir möchten unser Ergebnis gerne für 14 Kerzen berechnen.

 

Wir nutzen MODE_SMA für Simple Moving Average. Keinen Wert für die Verschiebung. Die Ergebnisse sollen anhand der Schlusskurse berechnet werden und diesen Wert passen wir jetzt noch an. Denn wenn Sie im Metatrader einmal auf die Eigenschaften des Envelopes-Indikator klicken, dann sehen wir hier einen Wert von 0,10 Prozent für die Abweichung. Das wollen wir auch in unserem Quellcode verwenden, denn sonst passen später die optische Darstellung und die Berechnung nicht zusammen. Der vorletzte Parameter steht für das jeweilige Band. Wenn man iEnvelopes einmal markiert und die F1-Taste drückt, dann sehen wir, dass für diesen Indikator 1 für das obere und 2 für das untere Band steht. Genau das verwenden wir auch hier im vorletzten Parameter. Der letzte Parameter steht für die Kerze. Wir möchten gerne das Ergebnis für Kerze 1, also die letzte fertige Kerze berechnen und wenn der letzte Wert für unseren Stop-Loss unter dem aktuellen unteren Band liegt, dann möchten wir gern diese Funktion hier aufrufen. Die heißt CheckEnvelopesBuyTrailingStop und bekommt den unteren Bandwert als Parameter übergeben. Diese Funktion gibt es aber nicht, die müssen wir gleich noch programmieren.

 

Als letzten Schritt in unserer OnTick-Funktion möchten wir gerne den letzten Stop-Loss mit dem aktuellen Wert für unser unteres Band füllen, damit wir diesen Wert als letzten Wert beim nächsten Aufruf der Funktion zur Verfügung haben. Kommen wir aber zur eigentlich interessanten Funktion. Die hat keinen Rückgabewert und den Namen CheckEnvelopesBuyTrailingStop. Wir übergeben hier als double-Wert den Wert für das untere Band. Mit Hilfe einer Vorschleife gehen wir hier alle offenen Positionen durch. Für jede dieser Positionen nutzen wir OrderSelect, um die aktuelle Order auszuwählen. Danach prüfen wir, ob das OrderSymbol zum Symbol auf dem Chart passt, also ob die Währungspaare übereinstimmen. Außerdem interessiert uns, ob der Order-Typ OP_BUY ist, es sich also um eine Kaufposition handelt, denn wir nutzen ja hier eine Funktion für den Buy Trailing Stop und wenn das alles zutrifft, dann möchten wir gerne noch wissen, ob der aktuelle Order-Stop-Loss für diese Position unterhalb von unserem unteren Band liegt. Treffen alle diese Bedingungen zu, dann nutzen wir die Funktion OrderModify, um den Stop-Loss auf den Wert für unser unteres Band zu verschieben.

 

Danach schließen wir hier noch die Schleifen und die Funktion und das war´s auch schon so weit. 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 dort gibt es jetzt auch Angebote, um solche Quelltexte hier herunterzuladen. Für den Moment klicken wir hier auf Kompilieren. Das sollte ohne Fehler funktionieren und wenn das bei Ihnen auch so ist, dann klicken Sie jetzt bitte hier oben oder drücken Sie die F4-Taste, um in den Metatrader zurückzukehren. Und im Metatrader öffnen wir ein leeres Chart, klicken auf Einfügen, Indikatoren, Tendenz, Envelopes. Bitte übernehmen Sie hier die Standardwerte und klicken Sie auf OK. Wenn Sie jetzt in das Chart hineinzoomen, dann sollten Sie den Indikator sehen.

 

Und jetzt klicken wir mit der rechten Maustaste und wählen Vorlagen, Vorlage speichern. Bitte speichern Sie diese Vorlage unter dem Namen tester.tpl. Den alten Wert können Sie überschreiben. Tester.tpl ist das was wir im Strategietester zu sehen bekommen. Darum klicken wir jetzt auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerEnvelopesBuyTrailingStop.ex4 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los und wir sehen, dass bei einem steigenden unteren Band der Trailing Stop automatisch nachgezogen wird. Unser Expert Advisor funktioniert also wie gewünscht und Sie haben in diesem kurzen Video gelernt, wie Sie für den Envelopes-Indikator einen Buy Trailing Stop programmieren können und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL4.