MQL4 TUTORIAL GRUNDLAGEN – 125 SIMPLER ATR SELL TRAILING STOP

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist, einen Sell Trailing Stop anhand dieses Indikators hier nachzuziehen. Das ist der Average True Range Indikator, also lassen Sie uns einmal schauen, wie man so etwas mit MQL4 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 Metaeditor auf und hier klicken wir auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen SimplerAverageTrueRangeSellStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit zwei globalen Variablen. Das erste ist der Stop Point Wert.

 

Den setzten wir hier auf 100. Hier handelt es sich um den Basiswert und außerdem hätten wir gerne einen berechneten Stop Point Wert. Der wird dann genutzt, wenn der Trailing Stop verwendet wird. Das hier sind beides globale Variablen, d.h. sie werden außerhalb einer Funktion deklariert und stehen damit in allen Funktionen zur Verfügung. Innerhalb der OnTick-Funktion starten wir damit, dass wir eine string-Variable für ein Signal erstellen. Hier weisen wir aber noch keinen Wert zu, denn den möchten wir jetzt gleich berechnen. MQL4 kommt mit der eingebauten Funktion iATR. Das ermöglicht uns den Average True Range Wert zu berechnen. Dazu übergeben wir hier ein paar Parameter. Der erste Parameter ist für das aktuelle Währungspaar auf dem Chart, der zweite Parameter ist für die auf dem Chart eingestellte Zeiteinheit. Wir möchten gerne für 14 Kerzen das Ergebnis berechnen. Das hier hinten ist ein Verschiebungswert. Den brauchen wir nicht, darum setzen wir den auf 0.

 

Als nächstes erstellen wir uns eine statische Variable. Die ist vom Typ double und ist für den alten Wert. Und immer, wenn der aktuelle Wert kleiner ist als der alte Wert, oder wenn der alte Wert den Wert 0 hat. Das wäre der Fall, wenn wir den Expert Advisor zum ersten Mal aufrufen, dann möchten wir unser Signal hier auf sell, also verkaufen setzen. Das ermöglicht uns die Prüfung, ob unser Signal den Wert sell hat, also wir ein Verkaufssignal haben. Und wenn der Rückgabewert für OrdersTotal den Wert 0 hat, dann haben wir auch keine geöffnete Position und dann nutzen wir OrderSend, um eine Sell-Position für 10 Microlot zu eröffnen. Das alles hier machen wir natürlich auf einem Demokonto und das ist eine Testposition, die wir benötigen, damit wir den Trailing Stop prüfen können. Das möchten wir tun, in dem wir eine benutzerdefinierte Funktion mit dem Namen CheckATRSellTrailingStop aufrufen. Der wir hier den Average True Range Wert als Parameter übergeben.

 

Diese Funktion existiert noch nicht, also müssen wir die gleich programmieren. Vorher erstellen wir uns hier mit dem Comment-Befehl noch eine Chartausgabe. Die wird uns dann das aktuelle Signal, den Average True Range Wert und den berechneten Stop Punkte Wert ausgeben. Zum Schluss weisen wir den Average True Range Wert noch dem alten Wert für den nächsten Aufruf zu und das war´s soweit mit unserer Hauptfunktion. Die Funktion hier existiert aber noch nicht, deswegen müssen wir die jetzt programmieren. Unsere benutzerdefinierte Funktion soll den Namen CheckATRSellTrailingStop bekommen. Wir übergeben hier als Parameter den Average True Range Wert. In der Folge berechnen wir den Stop Point Wert, in dem wir den Basis Stop Point Wert nehmen und das Ergebnis dieser Berechnung hier addieren. Dadurch sind wir in der Lage, den tatsächlichen Stop Loss Preis zu berechnen, in dem wir den aktuellen bid-Preis nehmen und den kalkulierten Stop Point Wert multipliziert mit dem Punktewert für das Währungspaar hier addieren. Mit Hilfe einer Vorschleife gehen wir jetzt alle Positionen durch.

 

Wir wählen mit OderSelect eine Position für jeden Trade aus, prüfen in der Folge, ob das Order Symbol und das Währungspaar auf dem Chart übereinstimmen. Außerdem möchten wir wissen, ob der aktuelle OrderType den Wert OP_SELL hat. Das würde bedeuten, dass es eine Verkaufsposition ist. Wenn das der Fall ist, möchten wir weiterhin wissen, ob der Stop Loss für die aktuelle Position größer ist als der von uns berechnete Stop Loss Preis. Und wenn das der Fall ist, dann nutzen wir hier OrderModify, um das aktuelle OrderTicket zu verändern. Der OrderOpenPrice bleibt so wie er ist, aber für den Stop Loss setzen wir hier den kalkulierten Stop Loss Preis sein. Die Werte für den Take Profit, für den Ablauftermin und für die Farbe lassen wir unverändert. Zum Schluss machen wir noch alle Schleifen zu, liefern mit dem return-Befehl hier unseren berechneten Stop Punkte Wert an das Hauptmodul zurück und beenden die Funktion. Das war´s soweit. Wenn Ihnen das zu schnell ging oder wenn Sie nicht wissen, was diese ganzen 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 jetzt auch diese Quellcodes hier im Shop. Für den Fall, dass Sie das nicht alles selber tippen möchten. Für den Moment klicken wir mal auf Kompilieren oder drücken die F7-Taste. Das sollte ohne Fehler funktionieren und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier auf dieses kleine Symbol klicken oder die F4-Taste drücken, um in den MetaTrader zurückzukehren. Und im MetaTrader nehmen wir ein leeres Chart, klicken auf Einfügen, Indikatoren, Oszillatoren und wählen hier Average True Range aus. Bitte übernehmen Sie den Standardwert für 14 Kerzen, klicken auf ok. Dann taucht hier unten das Indikatoren-Fenster auf. Jetzt klicken wir mit der rechten Maustaste in das Kerzenchart, wählen Vorlagen, Vorlage speichern und speichern das Ganze unter dem Namen tester.tpl, denn das ist die Schablone die wir im Strategietester angezeigt bekommen.

 

Die aktuelle Schablone können Sie hier ersetzen. Wir klicken also auf Ja. Danach klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerAverageTrueRangeSellStop.ex4 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor los und wenn wir einmal hineinzoomen in das Chart, dann sollten Sie sehen, dass hier der Trailing Stop für unsere Sell Position nachgezogen wird. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den Average True Range Oszillator einen Sell Trailing Stop programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL4.