Mit Datetime und OnInit den Wochentag berechnen

video
play-sharp-fill

OnTick() ist ja die Funktion, die immer dann aufgerufen wird, wenn sich der Preis auf unserem Chart ändert. Und das kann bedeuten, dass es in volatilen Zeiten manchmal mehrmals pro Sekunde eine komplette Berechnung von allen Funktionen gibt die zwischen diesen beiden geschweiften Klammern stehen. Manchmal macht es aber Sinn, eine Sache nicht ständig neu zu berechnen. Nehmen wir beispielsweise einmal an, wir wollen herausfinden welchen Wochentag wir gerade haben weil wir wissen möchten ob der Markt geöffnet hat oder nicht. Würde es Sinn machen 10 mal pro Sekunde den gleichen Wochentag zu berechnen? Nein, oder? Für solche Berechnungen gibt es die eingebaute Funktion OnInit(). Wenn man OnInit() eingibt und F1 drückt dann bekommt man eine Information dazu. Sie kann einen Void oder einen Int-Typ haben, nimmt keine Parameter entgegen und läuft sofort nachdem man einen Expert Advisor oder einen Indikator auf das Chart gezogen hat. In unserem Fall möchten wir den Rückgabewert ignorieren, also nutzen wir void. Und wir möchten ja gerne wissen welchen Tag in der Woche wir haben, das geht mit der Funktion TimeDayOfWeek(). Die TimeDayOfWeek() Funktion nimmt einen weiteren Parameter entgegen. Der heisst TimeCurrent() und wir nutzen einen Variablentyp für das Datum mit dem Namen datetime. Das Ergebnis unserer Berechnung kommt in die Variable heute, die hier berechnet wird. Und hier unten geben wir das Ergebnis unserer Berechnung auf dem Chart aus. Nach dem Kompilieren ohne Fehler bekommen wir im Metatrader angezeigt: Heute ist 4! Tatsächlich ist heute Freitag, also was soll mir diese Zahl sagen? Rufen wir doch einmal mit der F1-Taste den Hilfetext zu TimeDayOfWeek() auf. Hier bekommen wir angezeigt: 0 bedeutet Sonntag, 2 bedeutet Dienstag, dann ist auch klar, dass der Freitag eine 4 ist. Natürlich kann man das viel schöner formatieren, aber die grundlegende Funktionsweise des Datentyps datetime sollte klar geworden sein.