Bli medlem idag
Datum och tid/probuilder · probacktest · proorder · proscreener

CurrentYear

CurrentYear returnerar det fyrsiffriga året på klockan vid exekveringstillfället, identiskt på varje bar i diagrammet. Använd Year för att läsa året för varje bars stängning.

Syntax

probuilder
CurrentYear

Så fungerar det

CurrentYear läser klockan i det ögonblick koden körs och returnerar kalenderåret som ett fyrsiffrigt heltal, till exempel 2026. Referensen är tidszonen för instrumentets marknad, som kan skilja sig från den lokala datorn. Konstanten tar inga parametrar och ingen förskjutning i hakparenteser.

Värdet hör till Current-familjen av datum- och tidskonstanter, som beskriver exekveringsögonblicket snarare än någon bar i diagrammet. Varje bar i en beräkning ser därför samma tal: en indikator som uppdateras 2026 returnerar 2026 på varje historisk bar. Syskonkonstanten per bar är Year, som returnerar året för stängningen av varje bar som behandlas och förändras längs tidsaxeln. Segmentering av historiska data år för år hör till Year; CurrentYear beskriver kalendern just nu.

I ett ProOrder-system live är CurrentYear meningsfull, eftersom koden exekveras i realtid när barer kommer in. I ett backtest återspeglar den året då testet körs, vilket gör den olämplig för historiska årsbaserade villkor.

Exempel

Exempel 1, Etikett för aktuellt år (Indikator)

probuilder
// Retrieve the year of the clock at execution time
iYear = CurrentYear
RETURN iYear AS "this is the current year"

Indikatorn ritar en platt linje vid det aktuella året över hela diagrammet, uppdaterad till klockans år varje gång skriptet räknas om.

Exempel 2, Skanning styrd av år (ProScreener)

probuilder
// Return matches only from a chosen year onward
recentEnough = CurrentYear >= 2026
SCREENER[recentEnough AND close > Average[50](close)] (close AS "Close")

Screenern rapporterar resultat först när klockan når 2026 eller senare, en enkel kalenderspärr på en schemalagd skanning.

Exempel 3, Årsbaserat stopp (ProOrder)

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

Live stoppar systemet sig självt när kalendern går över till 2027. Backtest kan inte pröva den här grenen på ett meningsfullt sätt, eftersom CurrentYear innehåller året för testkörningen på varje bar.

Vanliga fel och fallgropar

  • Samma värde på varje bar. CurrentYear beskriver kalendern, inte diagrammet, så ett villkor som CurrentYear = 2026 är sant eller falskt för hela beräkningen på en gång. Årslogik per bar kräver Year.
  • Blind fläck i backtest. I ett backtest returnerar CurrentYear året då testet exekveras, så årsfilter byggda på den släpper igenom eller blockerar allt och ger resultat som inte stämmer med beteendet live.
  • Marknadens tidszon, inte lokal tid. Året utgår från instrumentets marknad och justeras inte för betraktarens lokala förskjutning.
  • Ingen bracket-offset. CurrentYear[1] kompilerar inte. Endast konstanter per bar som Year[N] accepterar ett index.
  • Year, fyrsiffrigt år för stängningen av varje bar, motsvarigheten per bar till den här konstanten.
  • OpenYear, året vid öppningen av varje bar.
  • CurrentMonth, klockans månad vid exekveringstidpunkten.
  • CurrentHour, klockans timme vid exekveringstidpunkten.
  • CurrentTime, fullständig klocktid vid exekvering som ett HHMMSS-heltal.
  • Month, månad för varje bar.
  • Day, dag i månaden för varje bar.
  • TIME, stängningstiden för varje bar som ett HHMMSS-heltal.