Name der Datei: Mql5 TUTORIAL DEUTSCH – FORTGESCHRITTENER WPR EXPERT ADVISOR Das was hier so schön handelt, das ist ein Expert-Advisor für den Williams-Percent-Range Indikator. Es handelt sich dabei um einen Oszillator, der auch im MetaTrader enthalten ist. Man sieht, dass diese blaue Linie hier ständig hin und her wechselt. Es gibt einen Bereich oberhalb dieser gestrichelten Linie und einen Bereich unterhalb der anderen gestrichelten Linie. Und wann immer dieser Bereich überschritten wird, haben wir entweder einen Kauf- oder ein Verkaufssignal. Das führt dann hier oben zu Cashflow positiven Ergebnissen in diesem Fall und wir möchten uns jetzt anschauen, wie wir einen Expertadvisor in Mql5 programmieren können, der in der Lage ist diesen Williams Percent Range Oszillator automatisch zu handeln. Um das zu tun klicken wir hier oben im MetaTrader auf diesen kleinen Button oder drücken die F4-Taste, um den Meta-Editor aufzurufen. Und im Meta-Editor erstellen wir uns ein Einstiegsmodul mit dem Namen „Checkentry_WPR.mq5“ dieses Einstiegsmodul wird später dann in unserem Hauptmodul importiert und da wir unser Signal über eine Funktion Checkentry holen, erstellen wir hier im ersten Schritt erst einmal die entsprechende Funktion. Außerdem benötigen wir eine Stringvariable, denn die wird später unser Signal aufnehmen. Darum bekommt sie auch den Namen Signal, aber zunächst einmal keinen Wert zugewiesen, denn den möchten wir später noch errechnen. Außerdem benötigen wir ein Array, das wird den Namen WPR-Array für Williams Percent Range Array bekommen. Und es soll unsere Preisdaten aufnehmen. Jetzt definieren wir mit der in Mql5 eingebauten Funktion iWPR für das aktuelle Währungspaar auf dem Chart und die auf diesen Chart eingestellte Zeiteinheit, die Eigenschaften für den WPR-Expert-Advisor. Das Ergebnis kommt in diese Definition und dieser dritte Parameter hier 14, den sieht man auch hier in diesem Fenster von dem Indikator. Und wenn man hier mit der rechten Maustaste auf Eigenschaften von Williams Percent Range klickt, dann sieht man, dass der Oszillator auf 14 Kerzen berechnet wird. Darum also hier diese 14. Gut, jetzt sortieren wir die Preise von der aktuellen Kerze an abwärts. Das macht die Funktion ArraySetAsSeries für das WPR-Array, das wir hier oben erstellt haben. Jetzt nutzen wir die Funktion „CopyBuffer“, um mit unserer WPR-Definition, die wir hier erstellt haben für den ersten Buffer mit der Nummer Null und die aktuelle Kerze Null, den Wert für drei Kerzen, darum diese drei, in unserem WPR-Array zu speichern. Und nachdem wir das getan haben, erstellen wir eine Variable vom Typ double mit dem Namen WPR-Wert und der weisen wir dann den aktuellen Wert von Kerze Null aus unserem WPR-Array zu und mit NormalizeDouble und mit dieser zwei hier, sorgen wir dafür dass unsere berechneten Werte hier nur zwei Nachkommastellen haben. Mittlerweile haben wir gleich tausend Euro brutto erreicht. Allerdings befinden wir uns hier bei der Equity gerade in einem Drawdown, der ist jetzt vorbei. Aber die Ergebnisse schauen wir uns später an. Jetzt machen wir zunächst hier einmal weiter. Denn es ist jetzt an der Zeit das Kaufsignal zu berechnen. Ein Kaufsignal entsteht immer, wenn sich die Indikator-Linie hier unten in diesem Bereich zwischen der minus 80 und der minus 100 befindet. Um das zu prüfen arbeiten wir in Mql5 mit einer If-Abfrage und fragen „Ist der WPR Wert kleiner als minus 80 und gleichzeitig größer als minus 100?“. Wenn das so ist, dann haben wir ein Kaufsignal und weisen den Wert „kaufen“ unserer Variable für das Signal zu. Natürlich gibt es auch ein Verkaufssignal. Immer wenn unser errechneter Wert größer ist als minus 20 und kleiner ist als Null, dann möchten wir verkaufen. Das wäre dann in diesem Bereich hier oben. Im letzten Schritt geben wir unser Signal noch an unser Hauptmodul zurück, das wird dann hier ausgewertet und mit Check for Tick an unser Golden Goose Trading Network übergeben.