MQL4 TUTORIAL GRUNDLAGEN – 81 SIMPLER SMA BUY TRAILING STOP

video

In diesem Video wollen wir uns einmal anschauen, wie man für einen gleitenden Durchschnitt einen Trailing Stop für buy trades erstellen kann. Der hier den Stop Loss anpasst, wenn sich der gleitende Durchschnitt nach oben bewegt. Also lassen Sie uns einmal herausfinden, wie man so etwas in 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 SimplerSMABuyTrailingStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden und auch die zwei Kommentarzeilen können weg. Wir starten damit, dass wir uns eine statische Variable vom Typ double erstellen. Die heißt LastStopMovingAverageValue und soll den letzten bekannten Wert für unseren gleitenden Durchschnitt aufnehmen, damit wir einen Stop Loss nachziehen können, brauchen wir natürlich auch eine geöffnete buy-Position. Wenn also keine offene Position existiert und OrdersTotal einen Wert von 0 hat, dann nutzen wir hier OrderSend, um eine Testposition für 10 Micorlot zu eröffnen und danach nutzen wir die in MQL4 enthaltene Funktion IMA für das aktuelle Währungspaar und die aktuelle Zeiteinheit auf diesem Währungspaar, um 500 Kerzen, ohne Verschiebung, für einen SMA, also einen SimpleMovingAverage, anhand der Schlusskurse den Wert für Kerze 1 zu berechnen. Der wird dann in dieser Variable hier gespeichert. Und die vergleichen wir jetzt mit letzten Wert und wenn der aktuelle Wert größer ist, als der letzte Wert, prüfen wir noch ab, ob der aktuelle Wert kleiner ist, als der Bid Preis und wenn beide dieser Bedingungen zutreffen, dann rufen wir eine Funktion mit dem Namen CheckSMABuyTrailingStop auf und übergeben hier als Parameter den ermittelten Wert für unseren gewünschten Stop Loss. Diese Funktion existiert noch nicht, also müssen wir die gleich noch programmieren. Als letzten Schritt möchten wir natürlich noch den letzten StopMovingAverage Wert für den nächsten Aufruf mit dem aktuellen Wert ersetzen, denn der aktuelle Wert ist ja beim nächsten Mal der letzte Wert. Unsere benutzerdefinierte Funktion soll den Namen CheckSMABuyTrailingStop erhalten. Wir nutzen hier void, da wir keinen Rückgabetyp benötigen und als Parameter übergeben wir hier den StopMovingAverageValue für unseren gleitenden Durchschnitt. Mit einer Vorschleife gehen wir jetzt alle Positionen durch und nutzen OrderSelect für den aktuellen Schleifenzählerwert, den wir hier nutzen, um jede Order einzeln auszuwählen. Jetzt prüfen wir, ob das Währungspaar für die ausgewählte Order mit dem Währungspaar auf dem Chart übereinstimmt. Und danach, ob der OrderTyp eine Kauforder ist und außerdem möchten wir gerne wissen, ob der aktuelle OrderStopLoss kleiner ist als der StopMovingAverage-Wert, den wir oben berechnet haben. Denn es macht ja keinen Sinn einen BuyTrailingStop für eine Kaufposition wieder nach unten wandern zu lassen. Und nur wenn alle diese Bedingungen wahr sind, dann nutzen wir hier OrderModify, um für das aktuelle OrderTicket zum unveränderten Order-Eröffnungskurs nur den Stop Loss zu unserem gewünschten Wert anzupassen. Den Wert für OrderTakeProfit, für das Ablaufdatum und für die Farbe lassen wir unverändert. Und zum Schluss setzen wir hier noch die schließenden Klammern für die Schleifen und für die benutzerdefinierte Funktion. Das wars so weit. Wenn Sie nicht wissen was alle diese Codezeilen hier bewirken sollen oder wenn Ihnen das zu schnell ging, dann möchten Sie sich vielleicht zunächst die anderen Videos aus der Grundlageserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf kompilieren oder drücken die F7-Taste. Ich hab hier wieder einen Klammerfehler gemacht. Die sind immer sehr beliebt. Drücken wir nochmal auf kompilieren. Auch hier fehlt noch eine Klammer. Es ist immer ganz nützlich, wenn man das so einrückt, dass einem das sofort ins Auge fällt. Ich klick jetzt hier nochmal auf kompilieren. Und diesmal hat das funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader nutzen wir jetzt ein leeres Chart und klicken auf Einfügen, Indikatoren, Tendenz, Moving Average. Hier wählen wir 500 Kerzen aus, die Methode ist Simple, Anwenden auf Close, ich hab jetzt hier rot als Farbe gewählt und klicke auf OK. Dann taucht mein gleitender Durchschnitt auf dem Chart auf. Und jetzt klicke ich mit der rechten Maustaste, wähle Vorlagen, Vorlage speichern und speichere das Ganze unter dem Namen Tester.tpl ab. Den alten Wert können Sie hier ersetzen. Tester.tpl ist die Schablone, die angezeigt wird, wenn Sie den Strategietester starten. Darum klicken wir jetzt auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerSMABuyTrailingStop.ex4 aus, markieren Sie hier die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los und wenn wir hier unten auf die Ergebnisse klicken, dann sehen wir, dass der Stop Loss hier bereits angepasst wurde. Sobald hier der gleitende Durchschnitt steigt, steigt auch der Stop Loss. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Trailing Stop für einen gleitenden Durchschnitt für Kaufpositionen erstellen können und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.