In diesem Video wollen wir uns einmal anschauen, wie man ein solches Objekt hier auf das Chart zeichnen kann. Es handelt sich um ein Gann Fann Objekt. Und wir wollen uns einmal anschauen, wie man so etwas in MQL5 programmiert. Um das zu tun, klicken Sie im Metatrader bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das öffnet den Metaeditor. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerHighGannFan, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns die Anzahl der Kerzen auf dem Chart berechnen. Das funktioniert mit der Funktion ChartGetInteger für das Chart mit der ID null.
Im zweiten Parameter nutzen wir CHART_FIRST_VISIBLE_BAR. Wenn man das einmal markiert und die F1 Taste drückt, dann lernen wir, dass wir die Nummer des ersten sichtbaren Balken auf dem Chart zurückerhalten. Das ist nicht der Wert, sondern tatsächlich die Nummer für die Kerze. Anschließend erstellen wir uns eine Variable für die höchste Kerze. Und um die zu ermitteln brauchen wir noch ein entsprechendes Array. Das habe ich hier mal High genannt. Dieses Array wird jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert.
Danach nutzen wir CopyHigh. Wenn man das markiert und F1 drückt, dann ist das in der Hilfe total falsch beschrieben. Es liefert uns nämlich die Höchstpreise und nicht die Eröffnungszeit. Und zwar für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit.
Wir starten mit der aktuellen Kerze null und kopieren für alle Kerzen auf dem Chart die Ergebnisse in unser High Array. Und das ermöglicht es uns, jetzt die höchste Kerze zu ermitteln. Und zwar mit der Funktion ArrayMaximum. Die sucht nämlich in unserem Array das maximale Element.
Und da wir in unserem High Array nur Höchstpreise haben, suchen wir von der aktuellen Kerze null für alle Kerzen auf dem Chart. Und das Ergebnis ist dann die Nummer der höchsten Kerze. Jetzt erstellen wir mit MqlRates ein weiteres Array, das neben den Preisdaten auch die Zeitpunkte für die Kerzen speichert. Dieses Array nenne ich PriceInformation. Auch das wird mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert.
Danach nutzen wir CopyRates, um für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit, von der aktuellen Kerze null für alle Kerzen auf dem Chart, die Preisdaten und die Zeitpunkte in unser Preisinformations-Array zu kopieren. Bevor wir jetzt unser Objekt erstellen, nutzen wir ObjektDelete, um für das aktuelle Währungspaar bereits bestehende Objekte mit diesem Namen hier zu löschen.
Beim allerersten Aufruf haben wir natürlich noch kein Objekt auf dem Chart. Aber danach möchten wir sicherstellen, dass jeweils, bevor wir ein neues Objekt zeichnen, das alte Objekt entfernt wird. Und das übernimmt hier diese Funktion ObjektDelete. Und nachdem das alte Objekt weg ist, können wir mit Hilfe von ObjectCreate ein neues erstellen. Dazu müssen wir einige Parameter übergeben. Der erste Parameter hier ist eine Null.
Der steht für die Chart-ID. Parameter Nummer zwei ist der Objektname. Hier ein Text. Sie können das Objekt so nennen, wie Sie das möchten. Hauptsache, Sie nennen es an allen Stellen gleich. Parameter Nummer drei ist der Objekttyp. In unserem Fall nutzen wir OBJ_GANNFAN. Wenn man das einmal markiert und die F1 Taste drückt, dann sehen wir, dass es hier eine ganze Reihe von anderen Objekttypen gibt, die wir ebenfalls nutzen könnten. Wir nutzen aber dieses Objekt hier. Das wird uns dann diese Linien auf das Chart zeichnen.
In Parameter Nummer vier geben wir an, dass wir das gerne auf dem Kerzenchart zeichnen möchten. Das ist Chart null. Jetzt folgen die Koordinaten. Und zwar nehmen wir aus dem Preisinformations-Array die höchste Candle, also die höchste Kerze. Und hier benötigen wir jetzt den Zeitpunkt.
Denn auf der X-Achse werden immer Zeitpunkte dargestellt. Und auf der Y-Achse sind die Werte. Damit wir die Koordinaten der höchsten Kerze bestimmen können, brauchen wir also den entsprechenden Zeitpunkt und den entsprechenden Wert. Der folgt jetzt auch. Soweit ist alles identisch.
Aber hier nutzen wir statt Time, high für den Höchstpreis. Im nächsten Schritt möchten wir angeben, wie unser Objekt gezeichnet werden soll. Ich hätte gerne für die aktuelle Kerze zum aktuellen Zeitpunkt und für den Höchstpreis der aktuellen Kerze den zweiten Ankerpunkt für unser Objekt gesetzt.
Natürlich können Sie diese Koordinaten nach Ihren eigenen Bedürfnissen anpassen. Aber für dieses einfache Beispiel soll uns das so reichen. Damit ist die Erstellung unseres Objektes beendet. Jetzt passen wir noch ein paar Eigenschaften an. Das geht mit Hilfe des Befehls ObjectSetInteger. Der erste Parameter hier steht für die Chart-ID. Parameter Nummer zwei ist der Name des Objektes. Wir möchten hier die Eigenschaft OBJPROP_COLOR anpassen. Ich hätte da gerne eine orange Farbe. Weiter geht es mit der Trendrichtung.
Das sieht ziemlich ähnlich aus. Die Eigenschaft dafür heißt OBJPROP_DIRECTION. Hier habe ich mich für GANN_DOWN_TREND entschieden. Eine weitere Eigenschaft die man setzen kann, ist die Skalierung für das Objekt. Da nutze ich hier den Wert zwei. Und die letzte Eigenschaft die geändert wird heißt OBJPROP_RAY_RIGHT. Die stellt eine Art Vorschaufunktion bereit, die uns ermöglicht, die Linien über die aktuelle Kerze hinaus zu zeichnen. Das war es soweit. Wenn Sie keine Ahnung haben, was alle diese Coden Zeilen hier bewirken sollen oder wenn Ihnen das zu schnell ging, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie noch einmal anschauen.
Vielleicht ist aber auch der Premium Kurs interessant für Sie. Den finden Sie auf unserer der Webseite. Für den Moment klicke ich hier mal auf Ansicht, Werkzeugleiste und auf Kompilieren. Sie können aber auch die F7 Taste drücken. Das hat hier bei mir ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren.
Und im Metatrader klicken wir Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Bitte wählen Sie hier die neu erstellte Datei SimplerHighGannFan.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier wird unser Objekt auch schon gezeichnet.
Man kann mit der Zoom Taste in das Chart hineinzoomen. Ich beschleunige das Ganze mal etwas. Und wie Sie sehen, werden die Objektlinien hier entsprechend von der höchsten Kerze an gezeichnet und angepasst. Und Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie man ein Fan Objekt auf dem Chart zeichnen kann. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.