MQL5 TUTORIAL GRUNDLAGEN – 127 SIMPLES ELLIPSE OBJEKT

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man so ein bewegliches Kreisobjekt hier erstellen kann. Eigentlich handelt sich hierbei um eine besondere Form einer Ellipse, also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das tun, klicken Sie bitte im MetaTrader auf dieses kleine Symbol hier oben 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 vergebe hier mal den Namen SimplesEllipseObjekt, klicke auf weiter, weiter und fertigstellen. Jetzt kann hier alles oberhalb der OnTick-Funktion entfernt werden und auch die zwei Kommentarzeilen werden gelöscht. Wir starten damit, dass wir uns zunächst eine Variable für die höchste und die niedrigste Kerze erstellen. Außerdem benötigen wir noch ein High und ein Low Array für die höchste und niedrigste Kerze. Diese Arrays werden jetzt mit ArraySetSeries von der aktuellen Kerze an abwärts sortiert. Das machen wir sowohl für das High Array als auch für das Low Array und im Anschluss nutzen wir den Befehl CopyHigh für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit.

 

Wir starten von Kerze 0 für 30 Kerzen und kopieren uns für alle diese Kerzen die Höchstpreise in unser High Array. Das Ganze geht auch mit den Niedrigstpreisen für alle Kerzen. Hier nutzen wir den Befehl CopyLow. Alle anderen Parameter sind identisch, bis auf den letzten der steht für das Ziel Array und natürlich möchten wir die niedrigsten Preise in das Low Array kopieren. Nach dem wir das getan haben, können wir die höchste Kerze berechnen, indem wir hier ArrayMaximum für unser High Array benutzen. Dieser Befehl durchsucht von Kerze 0 bis Kerze 30 alle enthaltenen Werte und speichert den höchsten Wert in dieser Variable hier ab. Zur Ermittlung der niedrigsten Kerze nutzen wir den Befehl ArrayMinimum. Ebenfalls von Kerze 0 bis Kerze 30 nach dem niedrigsten Wert und den speichern wir dann in dieser Variable ab. Außerdem brauche wir noch ein weiteres Array mit Preisinformationen. Das erstellen wir uns mit Hilfe des Befehls MqlRates.

 

Auch dieses Array sortieren wir mit ArraySetAsSeries von der aktuellen Kerze an abwärts und mit CopyRates können wir jetzt für das aktuelle Währungspaar auf dem Chart und die dort ausgewählte Zeiteinheit, angefangen von Kerze 0, für alle verfügbaren Kerzen auf dem Chart Preisdaten in unser Price Information Array kopieren. Dieser Befehl hier gibt uns alle verfügbaren Preisdaten. Auf einem langsamen Rechner könnte man das auch durch einen festen Wert ersetzen, so wie hier, und beispielsweise nur die Preisdaten für 30 Kerzen ermitteln. Und bevor wir jetzt unser Objekt zeichnen, möchten wir erst ObjectDelete nutzen, um die vorherigen Objekte zu löschen, und zwar für das aktuelle Währungspaar möchten wir alle Objekte löschen, die diesen Namen hier haben. Den Grund, warum wir Ellipse verwenden, ist, dass ein Kreis eine besondere Form einer Ellipse ist. Das sehen wir jetzt auch, wenn wir ObjectCreate verwenden, denn wir tun das für das aktuelle Währungspaar auf dem Chart. Vergeben hier den Objektnamen und der dritte Parameter ist der Objekttyp und der heißt in unserem Fall OBJ_ELLIPSE. Unser Objekt soll im Hauptfenster gezeichnet werden, das ist Fenster 0.

 

Die linke Begrenzung ist der Zeitpunkt an dem Kerze 30 gezeichnet wurde. Der höchste Preis der höchsten der letzten 30 Kerzen soll die obere Begrenzung sein. Der aktuelle Zeitpunkt für die aktuelle Kerze 0 ist die Begrenzung nach rechts und der niedrigste Preis der niedrigsten der letzten 30 Kerzen soll die Begrenzung nach unten sein. Jetzt könne wir noch ein paar Objekteigenschaften verändern. Das geht mit der Funktion ObjectSetInteger. Auch hier wieder für das Objekt auf dem Hauptchart mit dem Namen Ellipse. Verändern möchten wir die Eigenschaft OBJPROP_COLOR und die Farbe, die wir nutzen möchten, ist Blau. Diese Objekteigenschaften sind je nach Objekttyp unterschiedlich. Für unser Kreisobjekt ändern wir jetzt noch die Hintergrundfarbe. Das ist die OBJPROP_FILL. Auch die setzen wir auf Blau. Wenn man das hier mal markiert und F1 drückt, dann sieht man, dass es jede Menge dieser Eigenschaften gibt. Je nach Objekttyp stehen unterschiedliche Eigenschaften zur Verfügung. Wir sind jetzt hier soweit fertig, entfernen hier noch die letzten Leerzeilen.

 

Und das war´s auch im Großen und Ganzen. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was diese ganzen Codezeilen hier bedeuten, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus der Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite und da gibt’s jetzt auch einen Link zum Shop, falls Sie die Quellcodes herunterladen möchten, um nicht alles selber tippen zu müssen. Für den Moment klicken wir mal hier oben auf Kompilieren oder drücken die F7-Taste. Das sollte ohne Fehler funktionieren und wenn das bei Ihnen auch so ist, dann klicken Sie jetzt bitte hier oben 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 erstellte Datei SimplesEllipseObjekt.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier wird unser Objekt auch schon gezeichnet. Wir sehen, dass sich die Position und auch die Größe unseres Kreises entsprechend verändert. Unser Expert Advisor funktioniert also wie gewünscht und in diesem kurzen Video haben Sie gelernt, wie Sie ein Objekt vom Typ Ellipse auf einem Chart zeichnen können und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.