Jetzt beitreten
Datum und Uhrzeit/probuilder · probacktest · proorder · proscreener

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

probuilder
OpenYear

Das 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)

probuilder
// Store the year in which the current bar's session opened
yearOpened = OpenYear
RETURN yearOpened

Der 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)

probuilder
// 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
ENDIF

Der 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)

probuilder
// 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, nicht 20230101. Ein Vergleich mit YYYYMMDD-Literalen ergibt stillschweigend falsch. Vollständige Datumsvergleiche gehören zu OpenDate oder Today.
  • Eröffnungs- gegenüber Schlussjahr. Auf Bars, die über Mitternacht des 31. Dezember reichen, unterscheiden sich Eröffnungsjahr und Schlussjahr. Year folgt dem Datum des Bars, während OpenYear der Eröffnung folgt, daher sind die beiden um Jahresgrenzen herum nicht austauschbar.
  • Uhrzeit gegenüber Bar. CurrentYear liest 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.
  • 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.