In diesem Video wollen wir uns mal anschauen, wie man so ein dreieckiges Objekt auf einem Chart zeichnen kann. Es handelt sich hier um ein dynamisches Objekt, das immer wieder angepasst wird, wenn sich der Preis verändert. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das ruft dann hier den Meta Editor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage. Weiter. Ich vergebe hier mal den Namen SimplesDreieck, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können Sie entfernen. Wir starten damit, dass wir uns zunächst Variablen für die höchste und für die niedrigste Kerze erstellen. Außerdem brauchen wir für die Berechnung noch jeweils ein Array. Die Arrays bekommen den Namen High für die höchsten und Low für die niedrigsten Kerzenwerte. Mit Hilfe der Funktion ArraySetAsSeries sortieren wir jetzt unser High Array von der aktuellen Kerze an abwärts. Das Ganze wiederholen wir dann nochmal für das Low Array. Mit der Funktion CopyHigh lassen sich die Höchstpreise aus einer bestimmten Zeiteinheit kopieren. Und zwar für das aktuelle Währungspaar auf dem Chart, die aus dem Chart ausgewählte Zeiteinheit. Wir starten mit Kerze null und kopieren die Daten für die Höchstpreise von dreißig Kerzen in unser High Array. Eine entsprechende Funktion gibt es auch für die niedrigsten Preise. Die heißt dann CopyLow. Die tut das gleiche. Und diesmal speichern wir die Ergebnisse im Array mit dem Namen Low. Um jetzt die höchste Kerze zu berechnen gibt es eine weitere nützliche Funktion mit dem Namen ArrayMaximum. Die liefert uns das maximale Element in unserem Array. Das Ergebnis speichern wir in dieser Variable. Das gibt es natürlich dann auch für die niedrigste Kerze. Hier heißt die Funktion dann ArrayMinimum. Der Rest ist gleich, bis auf den Namen des Arrays und der Variable. Jetzt brauchen wir ein Array für Preisinformationen. Das erstellen wir mit MqlRates. Auch das sortieren wir mit Hilfe des Befehls ArraySetAsSeries von der aktuellen Kerze an abwärts. Und mit der Funktion CopyRates können wir jetzt für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit, angefangen von Kerze null, Daten kopieren. Dieser Begriff hier gibt uns die Werte für alle verfügbaren Kerzen. Und diese Werte speichern wir in unserem Array Preisinformation. Bevor wir ein neues Objekt erstellen, möchten wir erstmal vorherige Objekte löschen. Das machen wir mit der Funktion ObjectDelete. Die soll hier für unser aktuelles Währungspaar alle Objekte mit dem Namen Dreieck löschen. Danach nutzen wir ObjectCreate, um ein neues Objekt zu erstellen. Und zwar für das aktuelle Währungspaar auf dem Chart. Der Objektname soll Dreieck heißen. Der Typ des Objektes ist OBJ_TRIANGLE. Das Objekt soll auf dem Kerzenchart, also Chart null gezeichnet werden. Und zwar für den Zeitpunkt, an dem Kerze dreißig erscheint. Für den Schlusskurs von Kerze dreißig, das ist unser Ankerpunkt. Die eine Seite soll gezeichnet werden bis zu dem Zeitpunkt, wo die niedrigste Kerze der letzten dreißig Kerzen entsteht. Und zwar dort für den niedrigsten Preis der niedrigsten Kerze. Die andere Seite zeichnen wir bis zu dem Zeitpunkt, wo die höchste der letzten dreißig Kerzen entsteht. Und dort zum Höchstpreis der höchsten Kerze. Zum Schluss ändern wir noch zwei Objekteigenschaften. Das geht mit der Funktion ObjectSetInteger. Der erste Parameter hier ist null. Der steht für die Chart-ID. Und null steht für das laufende Chart. Hier möchten wir für das Objekt mit dem Namen Dreieck gerne die Eigenschaft OBJPROP_COLOR ändern. Und zwar auf die Farbe Gelb. Das Ganze wiederholen wir dann nochmal für den Hintergrund. Das ist in etwa dieselbe Funktion. Aber diesmal ändern wir hier die Eigenschaft OBJPROP_FILL.