MQL5 TUTORIAL GRUNDLAGEN – 26 SO PROGRAMMIEREN SIE EINEN BUY TRAILING STOP

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man einen Trailing Stop für eine Buy Position programmieren kann. Man sieht hier, dass der Stop Loss hinter dem Preis herwandert. Also nachgezogen wird, wenn der Preis hier oben steigt. Und wir wollen uns einmal anschauen, wie man das in MQL5 programmieren kann. 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 wählen wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich verwende hier einmal den Namen SimplerBuyTrainlingStop. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir die Datei Trade.mqh einbinden. Die gehört zum Lieferumfang von MQL5 dazu und bietet uns vereinfachte Handelsfunktionen. Wir starten damit, dass wir eine Instanz von CTrade erstellen, die den Namen trade bekommt. Die werden wir gleich verwenden, um eine Testposition zu eröffnen. Dazu müssen wir zunächst einmal den Ask Preis ermitteln. Das geht mit SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir verwenden SYMBOL_ASK, alles in Großbuchstaben. Und mit NormalizeDouble und _Digits ermitteln wir auch noch die Anzahl der Nachkommastellen. Denn je nach Währungspaar können das drei oder fünf Nachkommastellen sein. Danach prüfen wir, ob wir keine Positionen geöffnet haben. Das geht mit PositionsTotal. Und wenn der Rückgabewert null ist, dann eröffnen wir eine Testposition. Das soll ein Buy Trade für zehn Microlot sein. Das würde man auf einem Echtgeldkonto natürlich jetzt nicht so machen. Aber für unseren Testfall brauchen wir eine Position, damit wir den Trailing Stop ausprobieren können. Den rufen wir auf mit CheckTrailingStop und übergeben hier den ermittelten Ask Preis als Parameter. Aber diese Funktion hier muss jetzt noch programmiert werden. Für unseren Trailing Stop brauchen wir keinen Rückgabewert. Die Funktion soll ChecktrailingStop heißen. Und als Parameter übernimmt sie den Ask Preis, den wir hier oben übergeben haben. Zunächst definieren wir hier den gewünschten Stop Loss Wert von 150 Punkten. Denn wir möchten gerne vom aktuellen Ask Preis aus, 150 Punkte unterhalb unseren Stop Loss setzen. Dazu gehen wir zunächst einmal erst alle Positionen durch. Wir nutzen dafür PositionsTotal. Das ist eine Funktion, die uns die Anzahl der offenen Positionen zurückgibt. Und von dieser Anzahl zählen wir jetzt mit einer for Schleife komplett runter, bis keine Position mehr übrig ist. Für jede Position ermitteln wir das aktuelle Positionssymbol, also das Währungspaar, in dem die Position eröffnet wurde. Und wenn das aktuelle Währungspaar auf dem Chart und das Währungspaar der geöffneten Position übereinstimmen, dann möchten wir gerne den Stop Loss prüfen. Dazu brauchen wir aber erst noch ein paar Eigenschaften der Position. Die erste Eigenschaft ist die Ticket Nummer. Die kann ermittelt werden mit PositionGetInteger, POSITION_TICKET, bitte alles in Großbuchstaben schreiben. Es handelt sich hier um einen Datentyp ulong. Das steht für unsigned long integer. Außerdem brauchen wir noch den aktuellen Stop Loss Wert für die Position. Den ermitteln wir mit PositionGetDouble. POSITION_SL liefert uns als Wert den aktuellen Stop Loss. Und wenn der aktuelle Stop Loss für die Position mehr als 150 Punkte unter dem Ask Preis ist, wenn als der CurrentStopLoss kleiner ist als der gewünschte Stop Loss von 150 Punkten, den wir hier oben definiert haben, dann nutzen wir trade.PostitionMedify für das aktuelle Ticket und ziehen unseren aktuellen Stop Loss um zehn Punkte nach oben. Zum Schluss machen wir hier noch alle Schleifen zu. Wenn man eine Klammer hier markiert, kann man ganz gut erkennen, zu welchen anderen Klammer sie gehört. Und das war es im Großen und Ganzen. Wenn Ihnen das zu schnell war oder wenn Sie nicht verstehen, was all dieser Code hier bewirken soll, dann möchten Sie sich vielleicht die anderen Videos aus diesem Grundlagenkurs anschauen. Oder vielleicht sind Sie auch ein Kandidat für den Premium Kurs. Jetzt können wir auf jeden Fall auf Kompilieren klicken oder die F7 Taste drücken. Das sollte hier ohne Fehler und Warnungen abgehen. Und wenn das bei Ihnen auch der Fall ist, dann klicken Sie bitte hier oben oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Im Metatrader nehmen wir ein leeres Chart, klicken mit der rechten Maustaste und wählen Vorlagen, Vorlage speichern. Wir speichern das Ganze unter dem Namen tester.tpl und ersetzen die aktuelle Schablone. Denn tester.tpl ist das was wir sehen, wenn wir gleich den Strategietest starten. Und für unseren Trailing Stop brauchen wir keine weiteren Indikatoren. Klicken Sie also bitte auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Ctrl+R. Im Strategietester wählen wir jetzt die neue Datei SimplerBuyTrailingStop.ex5 aus. Bitte markieren Sie hier die Option für die Visualisierung und starten Sie Ihren Test. Hier ist die erste Position auch schon eröffnet worden. Und jetzt sollten wir gleich bei steigenden Kursen auch den Trailing Stop sehen können. Der wird hier nachgezogen. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Buy Trailing Stop programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL5.