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
OpenYearHet 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)
// Store the year in which the current bar's session opened
yearOpened = OpenYear
RETURN yearOpenedDe 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)
// 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
ENDIFHet 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)
// 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, niet20230101. Het vergelijken met YYYYMMDD-literals evalueert stilzwijgend naar false. Volledige datumvergelijkingen horen bijOpenDateofToday. - Openingsjaar versus closejaar. Op bars die middernacht van 31 december overspannen, verschillen het openingsjaar en het sluitjaar.
Yearvolgt de datum van de bar terwijl OpenYear de open volgt, dus de twee zijn rond jaargrenzen niet onderling verwisselbaar. - Klok versus bar.
CurrentYearleest 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.
Gerelateerde instructies
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.