MQL4 TUTORIAL GRUNDLAGEN – 124 SIMPLE ORDER CLOSE ZEIT

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man mit MQL4 ermitteln kann, wann eine Position geöffnet und geschlossen wurde. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL ermitteln kann. Um das zu tun, klicken Sie 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, Neu Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerOrderCloseZeit, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden.

 

Und auch die zwei Kommentarzeilen werden entfernt. Da es ja darum geht die Zeit für das Schließen einer Position zu ermitteln, benötigen wir zunächst einige offene Testpositionen. Wenn OrdersTotal uns hier also einen Wert von null zurückliefert, dann nutzen wir OrderSend, um eine Buy und eine Sell Position als Testposition zu eröffnen. Natürlich würde man das nicht auf einem Echtgeldkonto machen. Aber dafür sind Demo-Konten ja da. Anschließend möchten wir eine Funktion aufrufen die den Namen hat: CheckCloseTime. Das wird eine benutzerdefinierte Funktion. Die existiert aber nicht.

 

Darum müssen wir die noch programmieren. Unsere benutzerdefinierte Funktion hat keinen Rückgabetyp. Wir nutzen hier void. Der Name der Funktion ist CheckCloseTime. Mit einer for Schleife gehen wir jetzt alle Orders durch. Und da uns in diesem Fall die geschlossenen Positionen interessieren, nutzen wir hier OrderSelect und MODE_HISTORY. Das wird uns Zugriff auf die historischen Daten der bereits geschlossenen Positionen gewähren. Da uns Zeitangaben interessieren, führen wir hier ein paar/ nutzen wir hier ein paar zeitbezogene Funktionen. TimeLocal gibt uns die aktuelle lokale Zeit.

 

Die ist vom Typ datetime. Wir haben die Möglichkeit mit MqlDateTime eine Art Schablone, einen Struct zu erstellen. Das steht für Struktur und man kann sich das vorstellen wie eine Schablone. Für Zeiten gibt es da jede Menge Angaben, die man entsprechend formatieren kann. Weiter geht’s mit dieser Funktion. Die konvertiert unsere Zeitangabe hier in unserer Struktur. Das macht es dann beispielsweise möglich, innerhalb dieser Struktur auf die jeweilige Stunde zuzugreifen. Und damit können wir dann mit Hilfe der Funktion TimeToStr unsere Lokalzeit in ein lesbares Ausgabeformat verwandeln, das zu einer Textkette wird, die wir dann später hier in unserem Journal als lokale Zeit ausgeben können.

 

Die Eröffnungszeit der jeweiligen Position ermitteln wir mit OrderOpenTime. Das gleiche können wir hier auch mit OrderCloseTime für die Schließungszeit machen. Auch aus diesen beiden Zeitangaben erstellen wir eine jeweilige Struktur. Und mit TimeToStruct konvertieren wir dann die Eröffnungs- und die Schließungszeit in die von uns benötigte Struktur. Damit können wir dann wieder die lesbare Textkette mit Hilfe dieser Funktion TimeToStr in ein entsprechendes Format bringen. Und zu guter Letzt nutzen wir hier den Print Befehl, um unser Journal mit Informationen zu füllen. Das tun wir für das aktuelle Ticket, die Eröffnungs- und die Schließungszeit, den Order Profit und die aktuelle Zeit. Das war es auch schon so weit.

 

Wenn Ihnen das hier alles zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Code-Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht einmal den Premiumkurs anschauen. Den finden Sie auf unserer Webseite. Da gibt es übrigens jetzt auch solche Quelltexte hier im Shop, falls Sie sich die ganze Tipparbeit ersparen möchten. Und das hier war übrigens wieder ein Vorschlag von einem Premiummitglied. Und wenn Sie bereits Premiummitglied sind und eine Idee für ein Video wie dieses hier haben, dann lassen Sie es mich doch einfach wissen. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Ich habe hier einen Klammerfehler. Und zwar habe ich hier oben die schließende Klammer von der if-Abfrage vergessen. Wenn wir die hinzufügen und auf Kompilieren klicken, dann sollte das hier ohne Fehler abgehen.

 

Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken Strg+R. Bitte wählen Sie hier die neue Datei SimplerOrderCloseZeit.ex4 aus, markieren Sie den visuellen Modus und starten Sie Ihren Test. Im Moment haben wir noch keine geschlossenen Orders. Darum beschleunigen wir das Ganze etwas. Und wenn wir dann in das Journal schauen, dann sollten Sie hier alle von uns berechneten Angaben sehen. Wir haben hier eine Schließungs- und eine Eröffnungszeit.

 

Auch die lokale Zeit wird ausgegeben. Unser Expert Advisor funktioniert also wie gewünscht. Und in diesem kurzen Video haben Sie gelernt, wie sie auf historische Daten von geschlossenen Positionen zugreifen und die Eröffnungs- und die Schließungszeit für alle Positionen ausgeben können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier, im MQL4.