MQL5 TUTORIAL GRUNDLAGEN – 83 SIMPLER BOLLINGER BANDS 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 Buy Trailing Stop mit den Bollinger Böndern nachzuziehen. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 progammieren kann. Um das zu tun klicken Sie im Metatrader bitte 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 SimplerBollingerBandsBuyTrailingStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion gelöscht werden und auch die zwei Kommentarzeilen können weg. Wir starten mit der include-Funktion, um uns die Datei Trade.mqh zu importieren. Die ist Bestandteil von MQL5 und wird uns helfen später einfache Positionen zu eröffnen. Dazu erstellen wir uns von der Klasse CTrade, die in dieser Traidingbibliothek enthalten ist, eine Instanz mit dem Namen trade. In der OnTick-Funktion starten wir damit, dass wir uns eine statische double-Varibale erzeugen. Die bekommt hier den Namen LastStopBollingerBandsValue und soll den jeweils letzten Wert für unseren Stop Loss aufnehmen. Danach berechnen wir den Ask Preis und Bid Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_AKS bzw. SYMBOL_BID und mit NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen hinter dem Komma berechnen und damit wir einen Trailing Stop nachziehen können, benötigen wir natürlich auch eine Testposition. Wenn also die Funktion PositionsTotal kleiner ist als 1, dann möchten wir hier trade.Buy benutzen, um eine Testposition über 10 Microlot zu eröffnen. Natürlich macht man das nicht auf einem Echtgeldkonto, aber auf einem Demokonto brauchen wir halt jetzt die Position, denn sonst können wir den Trailing STop nicht benutzen. Im Anschluss setzen wir den letzen Wert für den StopBollingerBandsValue auf 0, denn der wir ja beim nächsten Mal wieder benötigt. Für die Bollinger Bänder benötigen zunächst einmal zwei Array vom Typ double. Einmal für das obere und einmal für das untere Band. Eigentlich gibt’s es hier auch noch ein mittleres Band, aber das spielt in diesem Fall keine Rolle. Im Anschluss nutzen wir ArraySetAsSeries, um das obere und das untere Band von der aktuellen Kerze an abwärts zu sortieren. Und mit der in MQL5 enthaltenen Funktion iBands erstellen wir uns jetzt eine Definition für die Bollinger Bänder für das aktuelle Währungspaar auf dem Chart und die auf dem Chart aktuell ausgewählte Zeiteinheit. Wir möchten gerne für 20 Kerzen die Werte berechnen. Wir nutzen keinen Wert für die Verschiebung. Die Diviation ist 2 und die Berechnung soll anhand der Schlusskurse erfolgen. Jetzt können wir CopyBuffer nutzen, um unser jeweiliges Array mit Daten zu füllen. Für das obere Band nutzen wir Buffer 1, für das untere Band nutzen wir Buffer 2. Und damit können wir anhand der Bollinger Bands-Definition, die wir hier oben getroffen haben, von der Kerze 0, das ist die aktuelle Kerze, für 3 Kerzen die Daten kopieren und in unseren jeweiligen Array speichern. Uns interessiert jeweils der Wert für die letzte abgeschlossene Kerze. Das ist Kerze 1. Also greifen wir hier einfach auf Kerze 1 in unserem oberen und unterem Band zu und weisen das Ergebnis der jeweiligen Variable zu. Für unseren Buy Trailing Stop interessiert uns, ob der letzte Lower Band Value, also untere Bandwert, unterhalb des Bid Preises liegt. Außerdem möchten wir noch wissen, ob dieser Wert größer ist als der letzte Stop Bollinger Band-Wert. Denn es macht nur dann Sinn einen Stop Loss für einen Buy Trade nachzuziehen, wenn die Preise auch gestiegen sind. Und falls das Beides zutrifft, dann möchten wir gerne eine Funktion mit dem Namen CheckBollingerBuyTrailingStop aufrufen. Hier übergeben wir dann den letzten Lower Band-Wert für das untere Bollinger Band. Anschließend wird dieser Wert dann als letzter gültiger Wert gespeichert, denn beim nächsten Mal ist der aktuelle Wert ja der letzte Wert. Das wars so weit mit dem ersten Teil, aber diese Funktion existiert noch nicht. Also müssen wir die jetzt programmieren. Wir nutzen hier void, weil wir keine Rückgabetyp benötigen. Der Name er Funktion ist CheckBollingerBuyTrailingStop und wir übergeben hier den Wert für den letzten unteren Bollinger Bandwert. Wir nutzen eine Vorschleife, um alle Positionen der Reihe nach durchzugehen. Hier ermitteln wir mit PositionGetSymbol für den aktuellen Schleifenzähler das Währungspaar für die Position und nur wenn das aktuelle Währungspaar auf dem Chart mit dem Positionswährungspaar übereinstimmt, dann möchten wir weiter machen. Dazu ermitteln wir zunächst die Nummer des PositionTicket. Das geht mit der Funktion PositionGetInteger. Der Parameter hier heißt POSITION_TICKET, bitte alles in Großbuchstaben schreiben. Über PositionGetDouble holen wir uns mit dem Parameter POSITION_SL noch den aktuellen Stop Loss für die Position. Und wenn der aktuelle Stop Loss für die Position kleiner ist als unser letzter Wert für das untere Bollinger Band, dann nutzen wir hier trade.PositionModify für das aktuelle PositionTicket, um den Stop Loss Wert auf den letzten Wert des unteren Bollinger Bandes anzupassen. Der letzte Parameter hier steht für den Take Profit Wert, aber den lassen wir unverändert. Zum Schluss machen wir noch die beiden Schleifen und die Funktion zu und das wars auch so weit. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie keine Ahnung haben was diese ganzen Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlageserie noch einmal anschauen. Für den Moment klicken wir mal auf Ansicht, Werkzeugleiste und klicken hier auf Kompilieren oder drücken die F7-Taste. Das hat bei mir ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol hier klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerBollingerBandsBuyTrailingStop.ex5 aus, markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Wir haben eine Testposition mit einem Stop Loss und wenn das untere Bollinger Band hier nach oben geht, dann sehen wir auch, dass der Stop Loss angepasst wird. Das ist jetzt gerade passiert. Auch wenn wir vorspulen sehen wir, dass der Trailing Stop hier funktioniert. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Expert Advisor programmieren können, der in der Lage ist, einen Stop Loss anhand des unteren Bollinger Bandes nachzuziehen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.