MQL5 TUTORIAL GRUNDLAGEN – 27 SO PROGRAMMIEREN SIE DEN SELL TRAILING STOP

video

In diesem Video wollen wir uns einmal anschauen, wie man mit MQL5 einen Trailing Stop für Sell Trades programmieren kann. Wir haben hier oben einen Stop Loss, der automatisch angepasst wird, sobald der Preis hier sinkt. Und wir wollen uns einmal anschauen, wie man das in MQL5 programmieren kann. Dazu klicken Sie bitte im Metatrader auf dieses kleine Symbol hier 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 SimplerSellTrainlingStop. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles hier oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten wieder mit include und importieren die Datei Trade.mqh. Die enthält die Klasse CTrade. Und davon erstellen wir uns jetzt eine Instanz, mit der wir später eine Position eröffnen möchten. Da das eine Sell Position sein, müssen wir zunächst den Bid Preis berechnen. Das machen wir mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen SYMBOL_BID, alles in Großbuchstaben. Ich nutze in der Regel auch noch NormalizeDouble und _Digits, denn das berechnet mit automatisch die aktuelle Anzahl von Nachkommastellen für das jeweilige Währungspaar. Jetzt prüfen wir, ob uns die Funktion PositionsTotal einen Wert von null zurückliefert. Denn wenn das der Fall ist, dann haben wir keine offenen Positionen. Und in dem Fall werden wir jetzt eine Beispiel Position eröffnen. Denn wir brauchen etwas, um auszuprobieren, ob unser Trailing Stop funktioniert. Da nutze ich trade.Sell und eröffne hier eine Position von zehn Microlot. Anschließend möchte ich gerne den Trailing Stop setzen. Dazu nutze ich die Funktion CheckTrailingStop und übergeben ihr den ermittelten Bid Preis. Die Funktion gibt es aber noch gar nicht. Also müssen wir die jetzt erstellen. Ich nutze hier void, denn diese Funktion soll nur den Trailing Stop setzen. Ich brauche keinen Rückgabewert. Allerdings übergeben wir als Parameter den Bid Preis. In der Funktion selbst setzen wir das Ziel für unseren Trailing Stop 150 Punkte oberhalb des Bid Preises an. Und da wir auch mehr als eine Position geöffnet haben könnten, müssen wir jetzt mit einem for Loop alle Positionen durchgehen. Die Funktion PositionsTotal liefert uns die Gesamtmenge der offenen Positionen. Von da aus zählen wir runter. Und für die jeweilige Position nutzen wir jetzt PositionGetSymbol, um die Positionswährung zu ermitteln. Denn wir wollen natürlich nur dann weitermachen, wenn das Währungspaar auf dem Chart mit dem Positionssymbol übereinstimmt. Und außerdem möchte ich noch prüfen, ob der Positionstyp einem Sell Trade entspricht. Das machen wir mit der Funktion PositionGetInteger, übergeben als Parameter POSITION_TYPE, auch wieder in Großbuchstaben und überprüfen, ob der Rückgabewert den Wert ORDER_TYPE_SELL hat. Denn das ist der Wert den wir zurückbekommen, wenn es sich um eine Markt Sell Order, also eine Marktverkaufsorder handelt. Wenn alle diese Vorbedingungen zutreffen, dann ermitteln wie das Positionsticket. Wiederum mit der Funktion PositionGetInteger. Diesmal für POSITION_TICKET, auch wieder alles in Großbuchstaben. Das Positionsticket ist eine eindeutige Möglichkeit zur Identifizierung, ähnlich wie bei einem Nummernschild. Außerdem hätte ich gerne noch den aktuellen Stop Loss für die Position. Den bekomme ich mit PositionGetDouble. Und hier nutzen wir als Parameter POSITION_SL. Mit dieser Information kann ich jetzt prüfen, ob der aktuelle Stop Loss für die Position größer ist, als der gewünschte Stop Loss. Und wenn dem so ist, dann passen wir das Ganze an. Das machen wir mit der Funktion trade.PostitionModify für das aktuelle Ticket. Und hier passen wir den aktuellen Stop Loss an, indem wir ihn um zehn Punkte nach unten schieben. Das war es soweit. Wir müssen jetzt hier noch die ganzen offenen Schleifen schließen. Vielleicht wissen Sie nicht genau, wie das hier alles so funktioniert oder es war Ihnen zu schnell. Dann könnten Sie sich eventuell die anderen Videos aus diesem Grundlagenkurs noch einmal anschauen. Oder eventuell sind Sie auch ein Kandidat für den Premiumkurs. Jetzt klicken wir erstmal auf Kompilieren. Und dann sollte das hier ohne Fehler und Warnungen funktionieren. Und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Im Metatrader wählen wir jetzt ein ganz normales Balkenchart ohne Indikatoren, klicken mit der rechten Maustaste darauf und wählen Vorlagen, Vorlage speichern. Das Ganze speichern wir unter dem Namen tester.tpl, denn das ist die Schablone, die im Strategietest benutzt wird. Die aktuelle Version kann ausgetauscht werden. Und wenn Sie das soweit haben, dann klicken wir auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Ctrl+R. Hier können wir jetzt die neue Datei SimplerSellTrailingStop.ex5 auswählen. Bitte markieren Sie auch hier die Option für die Visualisierung und starten Sie Ihren Test. Und jetzt sollten wir direkt eine offene Position auf dem Chart sehen. Und weiter oben ist auch unsere Stop Loss. Der wird immer dann nachgezogen, wenn der Preis hier fällt. Und Sie haben in diesem kurzen Video gelernt, wie Sie für einen Sell Trade einen automatischen Stop Loss programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL5.