OpenYear
OpenYear gibt das Jahr zurück, in dem die Handelssitzung des aktuellen Bars eröffnet hat, als vierstellige Ganzzahl. Nützlich für Jahresfilter in ProBuilder Skripten.
Syntax
OpenYearDas Schlüsselwort nimmt keine Parameter. Ein Historienindex in eckigen Klammern liest frühere Bars, daher OpenYear[1] gibt das Eröffnungsjahr des vorherigen Bars an.
So funktioniert es
Jeder Bar hält Datum und Uhrzeit fest, zu der er zu entstehen begann. OpenYear extrahiert die Jahreskomponente dieses Eröffnungsmoments und gibt sie als vierstellige Ganzzahl zurück. Der Wert ist nicht in einer größeren Datumszahl codiert und lässt sich daher direkt mit Literalen vergleichen wie 2020 ohne jegliche Dekodierung.
Das Schlüsselwort gehört zur Familie der eröffnungsbasierten Datumskomponenten, neben OpenMonth, OpenDay, und OpenTime, die alle beschreiben, wann der Bar eröffnet wurde. Das schlussbasierte Gegenstück ist Year, die das Jahr des Bar-Datums liest, und CurrentYear, das das Jahr der Systemuhr liest und nicht das eines Bars.
Typische Anwendungen sind, einen Backtest auf die jüngste Historie zu beschränken, Statistiken nach Kalenderjahr aufzuteilen und den ersten Bar eines neuen Jahres durch Vergleich des Wertes mit dem vorherigen Bar zu erkennen.
Beispiele
Beispiel 1, Das Eröffnungsjahr jedes Bars darstellen (Indikator)
// Store the year in which the current bar's session opened
yearOpened = OpenYear
RETURN yearOpenedDer Indikator gibt das Eröffnungsjahr jedes Bars zurück, wodurch Jahresgrenzen als Stufen in der gezeichneten Linie sichtbar werden.
Beispiel 2, Eine Strategie auf die letzten Jahre begrenzen (ProBacktest)
// Only evaluate entries on bars that opened in 2020 or later
IF OpenYear >= 2020 THEN
IF close CROSSES OVER Average[100](close) THEN
BUY 1 SHARES AT MARKET
ENDIF
ENDIFDer Jahresfilter schließt ältere Historie aus dem Backtest aus, auch wenn ein längerer Datenbereich geladen ist, und hält die Ergebnisse auf den gewählten Zeitraum fokussiert.
Beispiel 3, Den ersten Bar eines neuen Jahres erkennen (ProScreener)
// Match instruments printing their first bar of a new calendar year
newYear = OpenYear > OpenYear[1]
SCREENER[newYear] ("New year")Der Vergleich des Eröffnungsjahres des aktuellen Bars mit dem des vorherigen Bars isoliert den einzelnen Bar, auf dem das Jahr wechselt.
Häufige Fehler und Stolperfallen
- Vergleich mit vollständigen Datumsangaben. OpenYear liefert
2023, nicht20230101. Ein Vergleich mit YYYYMMDD-Literalen ergibt stillschweigend falsch. Vollständige Datumsvergleiche gehören zuOpenDateoderToday. - Eröffnungs- gegenüber Schlussjahr. Auf Bars, die über Mitternacht des 31. Dezember reichen, unterscheiden sich Eröffnungsjahr und Schlussjahr.
Yearfolgt dem Datum des Bars, während OpenYear der Eröffnung folgt, daher sind die beiden um Jahresgrenzen herum nicht austauschbar. - Uhrzeit gegenüber Bar.
CurrentYearliest die Computeruhr und ist während eines Durchlaufs auf jedem Bar gleich. OpenYear variiert von Bar zu Bar. CurrentYear in einem historischen Filter zu verwenden lässt die gesamte Historie auf einmal bestehen oder durchfallen.
Verwandte Befehle
CurrentYear, Jahr des aktuellen Kalenderdatums.Year, Jahr des Bars N Perioden vor dem aktuellen.OpenMonth, Monat, in dem der Bar eröffnet hat.OpenDay, Tag des Monats, an dem der Bar eröffnet hat.OpenDate, vollständiges Eröffnungsdatum des Bars im YYYYMMDD-Format.OpenTime, Eröffnungszeit des Bars als HHMMSS-Ganzzahl.Today, Datum des aktuellen Bars im Format YYYYMMDD.