MQL5 TUTORIAL GRUNDLAGEN – 48 SIMPLES CHART OBJEKT

video

In diesem Video wollen wir uns einmal anschauen, wie man ein Objekt auf einem Chart dynamisch zeichnen lassen kann. In diesem Fall ist es ein Rechteck. Für die letzten 30 Kerzen werden hier die jeweils höchsten und niedrigsten Kurswerte angezeigt. Und wir wollen uns mal anschauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie im Meta Trader bitte auf dieses kleine Symbol hier 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 „SimplesChartObjekt“, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns eine Variable für die Höchste und für die Niedrigste Kerze erstellen. Außerdem brauchen wir auch noch zwei Arrays. Das Eine für die Hohen und das Andere für die niedrigen Kerzen. Beide Arrays werden mit der Funktion ArraysSetAsSerious, von der aktuellen Kerze an, abwärts sortiert. Das Array mit dem Namen „High“ füllen wir jetzt mittels der Funktion CopyHigh für das aktuelle Währungspaar auf dem Chart und die dort eingestellte Zeiteinheit von der aktuellen Kerze 0 mit Werten für 30 Kerzen. CopyHigh übernimmt dabei die Höchstwerte. Das Ganze gibt’s dann auch noch mal für die niedrigsten Werte. Diesmal heißt das dann „CopyLow“. Auch hier ist der erste Parameter für das aktuelle Chart, der Zweite für die auf dem Chart ausgewählte Zeiteinheit und auch hier möchten wir gerne von der aktuellen Kerze für 30 Kerzen die Werte, in unser Array mit dem Namen „Low“ kopieren. Jetzt können wir die höchste Kerze ermitteln. Das übernimmt die Funktion ArrayMaximum. Die schaut in unser Array und sucht von der aktuellen Kerze 0, innerhalb der letzten 30 Kerzen, nach dem höchsten Wert. Für die niedrigste Kerze nutzen wir entsprechend die Funktion ArrayMinimum. Die macht das Gleiche, aber diesmal für den niedrigsten Wert. Der Rest der Parameter ist identisch. Jetzt brauchen wir noch die aktuellen Preise. Die holen wir uns mit der Funktion MqlRates und speichern sie in einem Array mit dem Namen Preisinformation. Auch hier nutzen wir ArraySetAsSerious, um unser Array von der aktuellen Kerze an absteigend zu sortieren. Danach füllen wir mit CopyRates unser Array mit Daten. Für das aktuelle Symbol und die aktuelle Zeiteinheit auf dem Chart. Tatsächlich sind diese beiden Begriffe und diese beiden Begriffe hier austauschbar. Also machen wir das doch einfach mal. In diesem Fall kopieren wir uns von der aktuellen Kerze, für die Gesamtanzahl der Kerzen auf dem Chart, unsere Informationen in unser Preisarray. Bitte beachten Sie, dass dieser Ausdruck hier sehr viel Rechenleistung kostet. Man könnte hier auch eine fixe Anzahl von Kerzen, zum Beispiel 100 Kerzen, verwenden. Denn wir wissen ja, dass wir nur 30 Kerzen brauchen. Aber wenn man alle Kerzen auf dem Chart einbeziehen will, dann ist dieser Ausdruck hier richtig. Im nächsten Schritt nutzen wir ObjectDelete für das aktuelle Währungspaar. Um ein evtl. bereits vorhandenes Rechteck zu löschen. Danach erstellen wir uns mit ObjectCreate für das aktuelle Währungspaar ein neues Objekt mit dem Namen „Rechteck“. Das hat den Objekttyp OBJ_RECTANGLE. Wenn man das einmal markiert und die Hilfe aufruft, dann sehen wir hier dass es noch massenweise andere Objekttypen gibt. Zum Beispiel wir könnten ein Button oder ein Lable verwenden. Alle diese Objekte hier haben unterschiedliche Einstellungen und Parameter. In unserem Fall kommt der nächste Parameter mit dem Wert 0, weil wir das Objekt gerne im Hauptfenster darstellen möchten. Das ist das Fenster hier mit den Kerzen. Unser Objekt soll also hier direkt im Hauptfenster gezeichnet werden. Bei Oszillatoren macht man das in der Regel in einem Fenster unterhalb der Kerzen. Wir möchten gerne bei der 30 Kerze anfangen das Objekt zu zeichnen. Die Oberkante solle am höchsten Punkt der höchsten Kerze sein. Die rechte Seite endet mit der aktuellen Kerze und die Unterkante ist am niedrigsten Preis der niedrigsten Kerze. Das Ganze machen wir für 30 Kerzen. Von Kerze 30 bis Kerze 0. Mit Hilfe der Funktion ObjectSetInteger setzen wir jetzt für unser Rechteck die Farbe. Das geht über die Eigenschaft OBJPROP_COLOR und hier hätten wir gerne die Farbe Blau. Außerdem möchten wir gerne noch den Füllmodus auf Blau setzen, damit unser Objekt auch im Inneren die gleiche Farbe hat. Dieser erste Parameter hier steht wieder für unser Hauptfenster. Das wars soweit. Wenn Ihnen das hier zu kompliziert war oder wenn Ihnen das zu schnell ging, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus unserer Grundlagenvideoserie anschauen oder vielleicht ist auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf kompilieren. Das hat in meinem Fall ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol hier klicken oder die F4-Taste drücken, um in den Meta Trader zurückzukehren. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei „SimplesChartObjekt.ex5“ aus. Markieren Sie hier die Option für die Visualisierung und starten Sie einen Test. Hier läuft unser Expert Advisor munter los. Wir sehen ein blaues Rechteck wird immer gezeichnet. Je nach dem, welche Kerze die Höchste und die Niedrigste ist, verändert sich hier die Höhe des Rechtecks. Und Sie haben in diesem kurzen Video gelernt, wie Sie ein Objekt dynamisch auf einem Chart zeichnen lassen können und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.