MQL5 TUTORIAL GRUNDLAGEN – 89 SIMPLE HIGH PRICE LINIE

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man eine Linie zeichnen kann, von der höchsten Kerze auf dem Chart bis zum Höchstpunkt der aktuellen Kerze, um einen groben Trend zu bestimmen. Es handelt sich hier um einen Objekttypen, also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4-Taste. Das öffnet dann hier den Metaeditor und wir klicken auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimpleHighPriceLinie, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles gelöscht werden was oberhalb der OnTick-Funktion ist und auch die zwei Kommentarzeilen werden gelöscht. Je nachdem wie viel Kerzen wir hier auf dem Chart angezeigt bekommen, bekommen wir andere Ausgaben0. Das bedeutet, zunächst einmal müsse wir die Anzahl der Kerzen auf dem Chart ermitteln. Denn nur für die sichtbaren Kerzen möchten wir gerne die höchste Kerze ermitteln. Das übernimmt die Funktion ChartGetInteger für uns. Die wird für das aktuelle Chart, die Eigenschaft CHART_FIRST_VISIBLE_BAR ermitteln. Die weisen wir hier der Variable CandlesOnChart, also Kerzen auf dem Chart zu. Außerdem brauchen wir eine Variable für die höchste Kerze. Die habe ich hier HighestCandle genannt. Und wir möchten ja alle Höchstpreise der sichtbaren Kerzen miteinander vergleichen, darum erstellen wir uns hier noch ein Array mit dem Namen High. Dieses Array sortieren wir jetzt mit der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts. Und jetzt holen wir uns die Höchstpreise für die Kerzen. Das übernimmt die Funktion CopyHigh. Die hat einige Parameter. Der erste Parameter steht für das aktuelle Währungspaar auf dem Chart. Der zweite Parameter für die Zeiteinheit, die wir auf dem Chart verwenden. Wir starten von der aktuellen Kerze 0 und möchten gerne für die Anzahl der Kerzen auf dem Chart alle Daten in unser HighArray kopieren. Und jetzt ermitteln wir die höchste Kerze mit der Funktion ArrayMaximum. Die wird in unserem Array alle Kerzen überprüfen und auch hier von der aktuellen Kerze 0 für alle auf dem Chart sichtbaren Kerzen die Werte durchgehen und den höchsten Wert dieser Variable hier zuweisen. Jetzt brauchen wir noch ein Array. Diesmal nutzen wir MqlRates, um uns die Preisinformationen für alle Kerzen zu holen. Auch dieses Array wird mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit CopyRates kopieren wir, für das aktuelle Chart und die auf dem Chart eingestellte Zeiteinheit, von Kerze 0 für alle auf dem Chart sichtbaren Kerzen die Preisdaten und speichern diese in unserem PriceInformations-Array. Im nächsten Schritt möchten wir gerne mit ObjectDelete alle vielleicht bereits vorher gezeichneten Linien auf dem Chart löschen. Und zwar tun wir das für das aktuelle Chart und für Linien, die diesen Namen hier haben, SimpleHIghLineTrend, denn dafür möchten wir jetzt ein neues Objekt erstellen. Das geht mit der Funktion ObjectCreate. Auch hier müssen wir eine ganze Menge Parameter übergeben. Der erste Parameter steht für das aktuelle Chart. Der zweite Parameter ist der Name des Objektes. Ich hab hier den Namen SimpleHighLineTrend gewählt, aber vom Prinzip ist der Name egal. Sie müssen Ihn nur immer gleich schreiben. Parameter Nummer drei steht für den Objekttypen. Wir nutzen hier OBJ_TREND. Parameter Nummer vier steht für unser Hauptfenster. Das Hauptfenster mit den Kerzen ist Fenster 0. Der Startpunkt für unsere Linie soll bei der höchsten ermittelten Kerze auf dem Chart liegen. Dazu übergeben wir hier die Zeitangabe von dieser Kerze. Und wir möchten gerne, dass die Linie vom höchsten Punkt dieser Kerze gezeichnet wird, also übergeben wir als zweiten Parameter hier den Höchstpreis. Wir könnten für jede Kerze auch den Schlusskurs angeben, aber uns interessiert in diesem Fall halt der Höchstpreis. Jetzt müssen wir noch die Endpunkte für unsere Linie festlegen. Ich hätte gerne, dass die Linie bis zur aktuellen Kerze 0 gezeichnet wird. Auch da übergeben wir hier die Zeit. Und der Endpunkt der Linie soll auf dem höchsten Preis der aktuellen Kerze liegen. Tatsächlich werden wir die Linie über die aktuelle Kerze hinaus zeichnen. Das können wir gleich mit einer Änderung einer Eigenschaft erreichen, aber diese vier Parameter hier legen zwei Punkte auf dem Chart fest, durch die unsere Linie gezeichnet werden soll. Schließen wir hier mal die ObjectCreate-Anweisung und setzen hier noch ein paar Objekteigenschaften. Die Objektfarbe lässt sich setzten in dem wir ObjectSetInteger benutzen, und zwar auf dem Hauptchart für das Objekt mit dem Namen SimpleHighLineTrend. Die zu verändernde Eigenschaft heißt OBJPROP_COLOR und wir hätten gerne die Farbe Rot. Ähnlich machen wir das jetzt mit dem Stil. Auch hier verwenden wir ObjectSetInteger ebenfalls für das Chart mit den Kerzen. Auch hier für das Objekt SimpleHighLineTrend. Diesmal verändern wir aber die Eigenschaft OBJPROP_STYLE und die setzen wir hier auf STYLE_SOLID. Wenn man das markiert und die F1-Taste drückt, dann lernen wir hier SOLID steht für eine ausgezogenen Linie. Ich denke auch diese Beschreibung ist der Automatikübersetzung zum Opfer gefallen. Eigentlich ist es eine durchgezogene Linie. Jetzt legen wir noch die Breite der Linie fest, also eigentlich die Liniendicke. Das geht mit ObjectSetInteger. Wieder fürs gleiche Chart und fürs gleiche Objekt. Diesmal verändern wir die Eigenschaft OBJPROP_WIDTH und setzen die Linienstärke auf 1. Und wie schon angekündigt, gibt es die Möglichkeit die Linie über den Endpunkt hinaus weiterzeichnen zu lassen. Das geht über ObjectSetInteger und die dafür eingesetzte Eigenschaft heißt OBJPROP_RAY_RIGHT. Markieren wir die mal, drücken die F1-Taste, dann sehen wir hier es gibt drei Eigenschaften. Wir hätten gerne, dass die Linie weiter nach rechts gezogen wird. Also nutzen wir OBJPROP_RAY_RIGHT und das wars auch schon so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie nicht wissen was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos in dieser Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unsere Webseite. Für den Moment klicken wir hier mal auf Kompilieren oder drücken die F7-Taste. Das hat ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Das ruft dann hier den Strategietester auf und hier wählen wir die neu erstellte Datei SimplerHighPriceLinie.ex5 aus. Bitte markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test. Hier wird die Linie auch schon angezeigt. Man sieht auch, dass sie sich verschiebt. Je nachdem wie sich der Preis verändert. Zoomen wir mal näher in das Chart, dann sehen wir hier, je nachdem wie viele Kerzen auf dem Chart sind, wird uns die jeweils höchste Kerze und die entsprechende Linie angezeigt. Unser Expert Advisor funktioniert also so wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie von der höchsten Kerze aus eine Objektlinie zeichnen können, die bis zur aktuellen Kerze reicht. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.