MQL5 TUTORIAL GRUNDLAGEN – 67 SIMPLE VERTIKALE LINIE

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man eine vertikale Linie zeichnen kann, wenn man eine Position eröffnet. In diesem Fall eröffnen wir Sell Positionen bei der höchsten von 100 Kerzen auf dem Chart. Also lassen Sie uns einmal anschauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun klicken Sie im Metatrader bitte 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 SimpleVertikaleLinie, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen hier werden entfernt. Wir starten damit, dass wir mitteln include hier oben die Datei Trade.mqh importieren. Die enthält eine Klasse mit dem Namen CTrade. Und davon erstellen wir uns jetzt eine Instanz mit dem Namen trade, die vereinfachte Handelsfunktionen bereitstellen wird. In der OnTick Funktion ermitteln wir zunächst den Bid Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_BID, bitte alles in Großbuchstaben und mit NormalizeDouble und _Digits sorgen wir dafür, dass die richtige Nummer von Nachkommastellen für das jeweilige Währungspaar automatisch berechnet wird. Nun erstellen wir ein Array. Und das übernimmt die Funktion MqlRates. Da wir in diesem Array Preisdaten speichern möchten. Da nutzen wir ArraySetAsSeries für unser neu erstelltes Array, um es von der aktuellen Kerze an abwärts zu sortieren. Und mit CopyRates füllen wir unser neu erstelltes Array für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit, von der aktuellen Kerze null, mit Preisdaten für 100 Kerzen und speichern das Ergebnis in unserem PriceInformation Array. Damit wir bei der höchsten der letzten 100 Kerzen verkaufen können, erstellen wir uns zunächst eine integer Variable mit dem Namen HighestCandle. Außerdem brauche ich noch ein Array mit dem Namen High. Das wird die Werte für die Höchstpreise der letzten 100 Kerzen aufnehmen. Auch hier nutzen wir wieder ArraySetAsSeries, um unser Array von der aktuellen Kerze an abwärts zu sortieren. Und jetzt können wir eine Funktion nutzen mit dem Namen CopyHigh. Die wird uns die Höchstpreise für das aktuelle Währungspaar und die aktuell auf dem Chart ausgewählte Zeiteinheit von der aktuellen Kerze null, für 100 Kerzen in unser High Array kopieren. Um die höchste Kerze zu ermitteln nutzen wir eine Funktion mit dem Namen ArrayMaximum. Die wird innerhalb unseres Arrays High von der aktuellen Kerze an für 100 Kerzen nach dem Höchstpreis suchen und liefert uns dann die Nummer der höchsten Kerze zurück. Und wenn die höchste Kerze, die Kerze null, also die aktuelle Kerze ist und uns die Funktion PositonsTotal einen Wert von null zurückliefert, dann bedeutet das, dass wir ein Signal haben und keine Position offen ist. Und in dem Fall nutzen wir trade.Sell um zehn Mikrolot zu verkaufen. Danach möchten wir eine benutzerdefinierte Funktion aufrufen, um eine vertikale Linie zu zeichnen. Die existiert noch nicht, also müssen wir die gleich noch programmieren. Zuvor nutzen wir noch den Comment Befehl, um uns auf dem Chart den Text: Highest Candle… und die höchste ermittelte Kerze ausgeben zu lassen. Das ist dann der Wert, den Sie hier oben links in der Ecke sehen. Unsere benutzerdefinierte Funktion hat den Namen DrawVLine. Wir nutzen hier void, denn wir haben keine Rückgabewerte. Zunächst nutzen wir ObjectDelete für das aktuelle Währungspaar auf dem Chart, um vielleicht vorher gezeichnete Linien zu entfernen. Denn wir möchten immer nur eine Linie hier auf dem Chart sehen für die jeweils letzte eröffnete Position. Um die Linie zu erstellen nutzen wir ObjectCreate für das aktuelle Währungspaar auf dem Chart. Der Name von unserem Objekt wird Line, also Linie sein. Der Objekttyp ist OBJ_VLINE. Die Linie soll auf dem Hauptchart, also innerhalb der Kerzen gezeichnet werden. Und wir nutzen hier TimeCurrent. Das liefert uns die Zeit der letzten empfangenen Preisänderungen zurück. Wenn man OBJ_VLINE mal markiert und die F1 Taste drückt, dann sieht man, dass es jede Menge andere Objekte gibt, die man hier zeichnen könnte. Und die Referenz gibt auch jede Menge Informationen zu den einzelnen Parametern und den Eigenschaften, die man verändern kann. Wir wollen das hier einmal durchführen und nutzen ObjectSetInteger, um auf dem Hauptchart für das Objekt mit dem Namen Line die Eigenschaft OBJPROP_COLOR auf die Farbe clrMagenta zu setzen. Wenn Sie das markieren und die F1 Taste drücken, dann sehen Sie, dass es jede Menge weitere Farben gibt, die man da nutzen könnte. Setzen wir mal noch eine Eigenschaft. Diesmal auch für das Hauptchart und das gleiche Objekt, aber für die Objektbreite. Das ist dann die Stärke der Linie. Die setzen wir hier auf eins. Und das war es auch schon so weit. Wenn Ihnen das hier zu schnell ging, oder wenn Sie keine Ahnung haben, was all diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus der Grundlagenserie noch einmal anschauen. Oder vielleicht ist auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Das hier war übrigens wieder ein Vorschlag von einem Premiumkurs Mitglied. Und wenn Sie bereits Premiumkurs Mitglied sind und einen Vorschlag für so ein Video haben, dann sagen Sie mir doch einfach Bescheid. Für dem Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Das hat in meinen Fall 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. Im Metatrader klicken wir auf Ansicht, Strategietester. Das ruft dann hier den Strategietester auf. Bitte wählen Sie hier die neue Datei SimpleVertikaleLinie.ex5 aus. Markieren Sie die Option für den visuellen Modus und starten Sie einen Test. Hier läuft der Expert Advisor auch schon los. Wir beschleunigen das Ganze mal. Und jetzt sehen wir, dass hier vertikale Linien erstellt werden. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für jede eröffnete Sell Position eine vertikale Linie zeichnen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier, in MQL5.