In diesem Video wollen wir einen Expert Advisor erstellen der in der Lage ist, einen Bollinger Band Buy Trailing Stop nachzuziehen. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL4 programmieren kann. Um das zu tun klicken Sie bitte im Metatader 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 SimplerBollingerBandsBuyTrailingStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns hier eine statisch Variable vom Typ double erstellen. Die soll unseren letzten Stop Bollingerwert aufnehmen und damit wir auch einen Trailing Stop benutzen können, erstellen wir uns jetzt auf unserem Demokonto eine Testposition über 10 Microlot. Wir möchten dazu prüfen, ob wir noch keine geöffnete Position haben. Das wäre der Fall, wenn der Rückgabewert für die Funktion OrdersTotal 0 ist. Und dann nutzen wir hier OrderSend für das aktuelle Währungspaar, um eine Kaufposition über 10 Micolot zu eröffnen. Gleichzeitig setzen wir hier den Wert für den Stop Loss zurück, denn für eine neue Position benötigen wir natürlich auch neue Werte. Im Anschluss können wir hier den Wert für den Bollinger Band Indikator ermitteln. Um das untere Band zu berechnen nutzen wir die eingebaute Funktion iBands für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir möchten gerne den Wert für 20 Kerzen ermitteln. Der Diviation-Wert für die Abweichung ist 2. Wir nutzen keinen Wert für die Verschiebung. Das Ergebnis soll anhand der Schlusskurse berechnet werden. Entweder mit MODE_LOWER für das untere oder mit MODE_UPPER für das obere Band, und zwar jeweils für Kerze 1. Das ist die letzte geschlossene Kerze auf dem Chart. Jetzt können wir versuchen den Stop Loss anzupassen indem wir eine Funktion CheckBollingerBuyTrailingStop aufrufen und hier den Wert für das untere Bollinger Band übergeben. Versuchen müssen wir das deswegen, weil diese Anpassung hier nicht jedes Mal funktionieren wird, z. B. wenn der Preis aktuell zu nah am unteren Bollinger Band liegt. Deshalb werden hier hin und wieder solche OrderModify error Einträge auftauchen, aber für dieses einfache Beispiel soll uns das so reichen. Außerdem möchten wir hier noch den aktuellen Wert für das untere Bollinger Band unsere Variable LastStopBollingerValue zuweisen. Denn der aktuelle Wert wird ja beim nächsten Aufrufen der letzte Wert sein. Und jetzt müssen wir natürlich diese Funktion hier noch programmieren. Wir nutzen hier void, da wir keine Rückgabetyp benötigen. Der Name der Funktion ist CheckBollingerBuyTrailingStop und wir übergeben hier als Parameter den Wert für das untere Bollinger Band. Mit einer Vorschleife gehen wir jetzt alle vorhandenen Orders durch. Danach nutzen wir OrderSelect, um für den aktuellen Schleifenzähler jede einzelne Order auszuwählen. Anschließend prüfen wir, ob das Währungspaar übereinstimmt mit dem Währungspaar auf dem Chart. Und wir möchten natürlich nur dann den Trailing Stop nachziehen, wenn der OrderTyp auch eine Kaufposition ist. Das überprüfen wir mit OrderType. Der würde bei einer Kaufposition den Wert OP_BUY haben und wenn der aktuelle Stop Loss zu niedrig ist, das wäre der Fall, wenn der Wert für OrderStopLoss kleiner ist als der Wert für das untere Bollinger Band. Dann nutzen wir hier OrderModify und versuchen den aktuellen Stop Loss anzupassen, für das aktuelle OrderTicket. Den OrderOpenPrice lassen wir wie er ist. Der STop Loss wird angepasst auf den Wert für das untere Bollinger Band und die 3 Werte für OrderTakeProfit, das Ablaufdatum und die Farbe bleiben ebenfalls unverändert. Zum Schluss schließen wir hier noch die Schleifen und die Funktion. Und das wars auch so weit.