MQL5 TUTORIAL GRUNDLAGEN – 44 SIMPLER SAR BUY TRAILING STOP

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man für diesen Indikator hier einen Trailing Stop programmieren kann. Es handelt sich um den parabolischen SAR Indikator. Und wir wollen jetzt einmal sehen, wie man so etwas in MQL5 automatisiert. 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 wählen wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerSARBuyTrailingStop. 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 mit einem include Befehl für die Datei Trade.mqh. Die ist Bestandteil von MQL5 und die ermöglicht es uns hier, eine Instanz von CTrade zu erstellen. Die hießt trade und wir werden sie gleich verwenden, um eine Testposition damit zu eröffnen. Dazu ermitteln wir in der OnTick Funktion zunächst den Ask Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Als zweiten Parameter verwenden wir hier SYMBOL_ASK, alles in Großbuchstaben. Und mit NormalizeDouble und _Digits lassen wir automatisch berechnen, wie viele Nachkommastellen das aktuelle Währungspaar hat. Und damit wir etwas haben, wofür wir den Stop Loss anpassen könne, eröffnen wir jetzt eine Testposition mit zehn Mikrolot. Das macht man natürlich nur auf Demo Konten. Wir prüfen hier, ob die Positionsanzahl kleiner ist als eins. Und falls das der Fall ist, nutzen trade.Buy um eine Position mit zehn Mikrolot zu eröffnen. Für unseren Trailing Stop brauchen wir zunächst einmal ein Array. Danach nutzen wir die, in MQL5 integrierte Funktion iSAR, um für das aktuelle Währungspaar und die aktuell auf dem Währungspaar verwendete Zeiteinheit, unsere Werte zu definieren. Diese letzten beiden Parameter hier, die sieht man auch, wenn man hier auf Einfügen, Indikatoren, Tendenz, Parabolic SAR klickt. Wir haben hier einen Schrittwert von 0,02 und einen Maximum Wert von 0,2. Diese Standardwerte übernehmen wir jetzt mit Okay. Klicken mit der rechten Maustaste in unser Chart. Wählen Vorlagen, Vorlage speichern und speichern das Ganze unter dem Namen tester.tpl. Den aktuellen Wert können Sie überschreiben. tester.tpl ist die Ansicht, die gleich genutzt wird, wenn wir unseren Strategietester starten. Vorher müssen wir aber noch ein paar Dinge im Metaeditor ändern. Zunächst nutzen wir ArraySetAsSeries um unser Array von der aktuellen Kerze an abwärts zu sortieren. Und danach füllen wir mit dem Befehl CopyBuffer unser SARArray anhand der Definition, die wir hier oben getroffen haben, für Buffer null, von der aktuellen Kerze null an für drei Kerzen mit Daten. Danach ermitteln wir unseren SARWert. Dazu schauen wir uns einfach an, welchen Wert die Kerze null in unserem Array hat. Zum Schluss möchten wir die Funktion CheckSarBuyTrailingStop aufrufen. Diese Funktion gibt es aber noch gar nicht. Darum müssen wir die jetzt programmieren. Unsere benutzerdefinierte Funktion hat keinen Rückgabewert. Darum nutzen wir hier void. Der Name ist CheckSarBuyTrailingStop. Und wir übergeben hier den Ask Preis und den SARWert als Parameter von der Hauptfunktion. Mit Hilfe einer for Schleife gehen wir alle Positionen durch, ermitteln für jede Position das Währungspaar. Das geht mit der Funktion PositionsGetSymbol für den aktuellen Schleifenzähler. Und nur, wenn das aktuelle Währungspaar auf dem Chart übereinstimmt mit dem Währungspaar für die Position, dann möchten wir weitermachen. Dazu ermitteln wir mit der Funktion PositionGetInteger zunächst das POSITION_TICKET. Dann holen wir uns den aktuellen Stop Loss Wert. Das geht mit der Funktion PositionGetDouble. Hier nutzen wir als Parameter POSITION_SL, alles in Großbuchstaben bitte. Und wenn der aktuelle Stop Loss kleiner ist, als der SARWert, den wir ermittelt haben, dann nutzen wir die Funktion trade.PositionModify für das aktuelle PositionsTicket und setzen den Stop Loss auf den berechneten SARWert. Den Wert für den Take Profit lassen wir hier unverändert. Wir könnten den auch anpassen, aber das ist eher ein Thema für ein anderes Video. Zum Schluss machen wir hier noch unsere Schleifen und die Funktion zu. Und das war es soweit. Wenn Sie nicht verstehen, was diese Funktionen hier bewirken sollen, oder wenn Ihnen das alles zu schnell war, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie anschauen. Oder vielleicht ist auch der Premium Kurs interessant für Sie. Den finden Sie auf unserer Webseite. Für den Moment klicken wir hier auf Kompilieren oder die F7 Taste. In meinem Fall hat das hier funktioniert. Und wenn das bei Ihnen auch so ist, dann können wir hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Im Metatrader klicken wir auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Ctrl+R. Hier wählen wir jetzt die neu erstellte Datei SimplerSARBuyTrailingStop.ex5 aus. Bitte markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Und so sieht das Ganze dann im laufenden Betrieb aus. Sobald hier ein neuer Wert für den Parabolic SAR Indikator erscheint, wird unser Trailing Stop nachgezogen. Unser Programm funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für einen Indikator einen Trailing Stop programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL5.