Word nu lid
Datum en tijd/probuilder · probacktest · proorder · proscreener

OpenYear

OpenYear geeft het jaar terug waarin de handelssessie van de huidige bar opende, als een geheel getal van vier cijfers. Nuttig voor jaarfilters in ProBuilder-scripts.

Syntaxis

probuilder
OpenYear

Het keyword neemt geen parameters. Een historie-index tussen vierkante haken leest eerdere bars, dus OpenYear[1] geeft het openingsjaar van de vorige bar.

Hoe het werkt

Elke bar legt de datum en tijd vast waarop hij begon te vormen. OpenYear haalt de jaarcomponent uit dat openingsmoment en geeft die als viercijferig geheel getal terug. De waarde zit niet verpakt in een groter datumgetal, dus hij is direct te vergelijken met literals zoals 2020 zonder enige decodering.

Het keyword hoort bij de familie van open-gebaseerde datumcomponenten, naast OpenMonth, OpenDay, en OpenTime, die allemaal beschrijven wanneer de bar opende. De close-gebaseerde tegenhanger is Year, die het jaar van de bardatum leest, en CurrentYear, dat het jaar van de systeemklok leest in plaats van dat van een bar.

Typische toepassingen zijn een backtest beperken tot recente historie, statistieken opsplitsen per kalenderjaar, en de eerste bar van een nieuw jaar detecteren door de waarde te vergelijken met die van de vorige bar.

Voorbeelden

Voorbeeld 1, het openingsjaar van elke bar plotten (Indicator)

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

De indicator geeft het openingsjaar van elke bar terug, waardoor jaargrenzen zichtbaar worden als stappen in de geplotte lijn.

Voorbeeld 2, een strategie beperken tot recente jaren (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

Het jaarfilter sluit oudere historie uit van de backtest, zelfs wanneer er een langer databereik is geladen, waardoor de resultaten gericht blijven op de gekozen periode.

Voorbeeld 3, de eerste bar van een nieuw jaar detecteren (ProScreener)

probuilder
// Match instruments printing their first bar of a new calendar year
newYear = OpenYear > OpenYear[1]
SCREENER[newYear] ("New year")

Het openingsjaar van de huidige bar vergelijken met dat van de vorige bar isoleert de ene bar waarop het jaar verandert.

Veelvoorkomende fouten en valkuilen

  • Vergelijken met volledige datums. OpenYear geeft 2023, niet 20230101. Het vergelijken met YYYYMMDD-literals evalueert stilzwijgend naar false. Volledige datumvergelijkingen horen bij OpenDate of Today.
  • Openingsjaar versus closejaar. Op bars die middernacht van 31 december overspannen, verschillen het openingsjaar en het sluitjaar. Year volgt de datum van de bar terwijl OpenYear de open volgt, dus de twee zijn rond jaargrenzen niet onderling verwisselbaar.
  • Klok versus bar. CurrentYear leest de computerklok en is op elke bar tijdens een run hetzelfde. OpenYear varieert van bar tot bar. CurrentYear in een historisch filter gebruiken laat de hele historie in één keer slagen of falen.
  • CurrentYear, jaar van de huidige klokdatum.
  • Year, jaar van de bar N periodes vóór de huidige.
  • OpenMonth, maand waarin de bar opende.
  • OpenDay, dag van de maand waarop de bar opende.
  • OpenDate, volledige openingsdatum van de bar in YYYYMMDD-formaat.
  • OpenTime, openingstijd van de bar als geheel getal in HHMMSS.
  • Today, datum van de huidige bar in YYYYMMDD-formaat.