MQL5 TUTORIAL – 90 SIMPLE LOW PREIS TREND LINIE

video

 

In diesem Video wollen wir uns einmal anschauen, wie man von der niedrigsten Kerze, vom niedrigsten Preis aus, eine Linie zum aktuellen Niedrigstpreis der aktuellen Kerze und darüber hinaus erstellen kann. Also lassen Sie uns einmal schauen, wie man so etwas in 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 Metaeditor auf und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergeben hier einmal den Namen SimpleLowPriceLinie, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden und wir entfernen auch die beiden Kommentarzeilen. Im ersten Schritt möchten wir erst einmal ermitteln, wie viele Kerzen wir denn auf dem Chart haben. Das geht mit der Funktion ChartGetInteger und zwar für die aktuelle Chart-ID 0 möchten wir gerne die Eigenschaft CHART_FIRST_VISIBLE_BAR haben, bitte alles in Großbuchstaben und mit Unterstrichen. Das hätten wir gerne für das Fenster Nummer 0, also hier wo die Kerzen sind, das ist das Fenster 0. Wenn man hier einen Wert für den MACD anzeigen lässt, dann wäre darunter noch ein weiteres Fenster. Ich glaube das wäre ID 1. Jetzt haben wir auf jeden Fall die Anzahl der Kerzen auf dem Chart. Danach brauchen wir noch eine Variable für die niedrigste Kerze und wir erstellen uns ein Array. Das bekommt den Namen Low, denn es soll die Werte für die niedrigsten Preise unserer Kerzen aufnehmen. Das Array wird jetzt im Anschluss mit der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und jetzt nutzen wir die Funktion CopyLow. Die liefert uns die Minimalpreise der Kerzen, für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit. Angefangen von der aktuellen Kerze bis hin zur Anzahl der sichtbaren Kerzen und speichert uns das Ergebnis in unserem Array ab. Und das ermöglicht es uns jetzt die niedrigste Kerze zu ermitteln, in dem wir eine weitere Funktion einsetzen, die heißt ArrayMinimum. Und ArrayMinimum macht das was wir schon vermuten, es liefert uns den niedrigsten Wert innerhalb eines Arrays. In diesem Fall durchsuchen wir das Array mit dem Namen Low von der aktuellen Kerze 0 für alle sichtbaren Kerzen auf dem Chart und speichern das Ergebnis als Nummer der niedrigsten Kerze. Das hier ist noch nicht der Wert den wir benötigen, sondern nur die Nummer der Kerze auf dem Chart. Mit Hilfe von MqlRates erstellen wir jetzt ein Array für die Preisinformation der Kerzen auf dem Chart. Auch dieses Array wird mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Danach füllen wir mit CopyRates unser Array mit Daten, und zwar für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit. Auch hier starten wir von der aktuellen Kerze 0. Wir möchten gerne die Daten für alle Kerzen auf dem Chart haben und die speichern wir in unserem PriceInformation-Array. Jetzt nutzen wir ObjectDelete für das aktuelle Währungspaar auf dem Chart, um ein Objekt mit dem Namen SimpleLowLineTrend zu löschen, falls schon eines existiert. Beim allerersten Aufruf wird das nicht der Fall sein, aber danach möchten wir immer zunächst die alte Linie löschen bevor wir eine Neue zeichnen. Und um diese Linie zu zeichnen nutzen wir ObjectCreate. Hier müssen wir noch einige Parameter übergeben. Der erste Parameter steht für das aktuelle Währungspaar. Parameter Nummer 2 gibt den Namen des Objekts an. In unserem Fall SimpleLowLineTrend. Mit Parameter Nummer 3 legen wir den Objekttyp fest. Wir nutzen hier OBJ_TREND. Es gibt aber noch eine ganze Menge weiterer Objekttypen die man hier nutzen könnte. Je nach Objekttyp müssen wir unterschiedliche Parameter übergeben. Für unsere gerade Linie brauchen wir Koordinaten. Und die hätten wir gerne für unser Kerzenchart. Darum übergeben wir hier bei Parameter 4 die 0. Das wird hier mit Index des Fensters übersetzt. Für den Startpunkt der Linie möchten wir gerne den Zeitpunkt der niedrigsten Kerze nutzen. Denn die X-Achse liefert uns ja immer Zeitpunkte. Der nächste Wert steht für den Niedrigstpreis dieser niedrigsten Kerzen, denn auf der Y-Achse stehen hier immer die Werte. Und damit haben wir hier unten diesen Startpunkt hier festgelegt. Und die Linie soll jetzt gezeichnet werden, zur aktuellen Kerze. Hier geben wir wieder zunächst den Zeitpunkt an. Für den Wert hätte ich gerne den Niedrigstpreis von der aktuellen Kerze. Und damit ist die Erstellung von unserem Linienobjekt schon beendet. Wir werden aber jetzt noch einige Eigenschaften verändern. Dazu nutzen wir ObjectSetInteger für die Chart-ID 0 und das Objekt mit dem Namen SimpleLowLineTrend. Die Eigenschaft die ich gerne verändern möchte, heißt OBJPROP_COLOR und ich hätte gerne eine rote Linie, also nutze ich hier Red. Danach wiederholen wir das Ganze. Auch hier nutzen wir ObjectSetInteger. Die ersten beiden Parameter sind identisch, aber diesmal ändern wir die Eigenschaft OBJPROP_STYLE. Ich habe hier STYLE_SOLID gewählt, damit ich eine durchgezogene Linie erhalte. Man könnte aber auch SYTLE_DOT für eine gepunktete Linie verwenden. Jetzt kommt eine weitere Eigenschaft für die Objektbreite dran. Die heißt OBJPROP_WIDTH. Ich setze hier die Objektlinienstärke auf 1 und der letzte Parameter heißt OBJPROP_RAY_RIGHT, den setzen wir auf true, also wahr. Das wird eine Objektvorschau erzeugen. Das bedeutet, über den Endpunkt hinaus wird unsere Linie weiter in die Zukunft gezeichnet. Und das wars so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was all diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7-Taste. Das sollte ohne Fehler funktionieren und wenn das bei Ihnen auch der Fall ist, dann klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4-Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier die neu erstelle Datei SimpleLowPriceLinie.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier sehen wir, dass unsere Linie bereits ziemlich schnell gezeichnet wird. Sie passt sich auch der aktuell niedrigsten Kerze auf dem Chart an. Und wenn wir einmal hineinzoomen, dann sollte das auch für eine ganze Menge Kerzen funktionieren. Unser Expert Advisor arbeitet also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie ein Linienobjekt von dem niedrigsten Preis der niedrigsten Kerze auf dem Chart bis zum Niedrigstpreis der aktuellen Kerze und darüber hinaus zeichnen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.