CurrentYear
CurrentYear returnerer det firesifrede årstallet på klokken ved kjøringstidspunktet, identisk på hver bar i diagrammet. Bruk Year for å lese året ved hver bars slutt.
Syntaks
CurrentYearSlik fungerer det
CurrentYear leser klokken i det øyeblikket koden kjører, og returnerer kalenderåret som et firesifret heltall, for eksempel 2026. Referansen er tidssonen til instrumentets marked, som kan avvike fra den lokale maskinen. Konstanten tar ingen parametere og ingen forskyvning i klammeparentes.
Verdien tilhører Current-familien av dato- og tidskonstanter, som beskriver utførelsesøyeblikket og ikke noen bar i diagrammet. Hver bar i en beregning ser derfor samme tall: en indikator som oppdateres i 2026 returnerer 2026 på hver historiske bar. Søskenkonstanten per bar er Year, som returnerer året for stengingen av hver bar som behandles og endrer seg langs tidsaksen. Segmentering av historiske data år for år hører sammen med Year; CurrentYear beskriver kalenderen nå.
I et live ProOrder-system er CurrentYear meningsfull, siden koden kjøres i sanntid etter hvert som barene kommer inn. I en backtest gjenspeiler den året testen kjøres, noe som gjør den uegnet for historiske årsbaserte betingelser.
Eksempler
Eksempel 1, Etikett for gjeldende år (Indikator)
// Retrieve the year of the clock at execution time
iYear = CurrentYear
RETURN iYear AS "this is the current year"Indikatoren tegner en flat linje på gjeldende år over hele diagrammet, oppdatert til årstallet på veggklokken hver gang skriptet beregnes på nytt.
Eksempel 2, Skanning med årssperre (ProScreener)
// Return matches only from a chosen year onward
recentEnough = CurrentYear >= 2026
SCREENER[recentEnough AND close > Average[50](close)] (close AS "Close")Skanneren rapporterer resultater bare når klokken når 2026 eller senere, en enkel kalendersperre på en planlagt skanning.
Eksempel 3, Årsbasert stopp (ProOrder)
// Stop the strategy at the turn of a chosen year
DEFPARAM CumulateOrders = false
IF CurrentYear >= 2027 THEN
QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFLive stopper systemet seg selv når kalenderen går over i 2027. Backtester kan ikke prøve ut denne grenen på en meningsfull måte, fordi CurrentYear holder året for testkjøringen på hver bar.
Vanlige feil og fallgruver
- Samme verdi på hver bar. CurrentYear beskriver kalenderen, ikke diagrammet, så en betingelse som
CurrentYear = 2026er sann eller falsk for hele beregningen på én gang. Årslogikk per bar trengerYear. - Blindsone i backtest. I en backtest returnerer CurrentYear året testen kjøres, så årsfiltre bygget på den slipper gjennom eller blokkerer alt under ett og gir resultater som ikke stemmer med live oppførsel.
- Markedets tidssone, ikke lokal tid. Året refererer til instrumentets marked og justeres ikke for betrakterens lokale tidsforskjell.
- Ingen forskyvning i klammer.
CurrentYear[1]kompilerer ikke. Bare konstanter per bar, somYear[N]godtar en indeks.
Relaterte instruksjoner
Year, firesifret årstall ved slutten av hver bar, søskenverdien per bar til denne konstanten.OpenYear, året ved åpningen av hver bar.CurrentMonth, måneden på klokken ved utførelsestidspunktet.CurrentHour, timen på klokken ved utførelsestidspunktet.CurrentTime, full klokketid ved utførelse som et HHMMSS-heltall.Month, måneden for hver bar.Day, dagen i måneden for hver bar.TIME, stengetiden for hver bar som et HHMMSS-heltall.