CurrentYear
CurrentYear restituisce l'anno a quattro cifre dell'orologio al momento dell'esecuzione, identico su ogni bar del grafico. Usa Year per leggere l'anno della chiusura di ogni bar.
Sintassi
CurrentYearCome funziona
CurrentYear legge l'orologio nel momento in cui il codice viene eseguito e restituisce l'anno di calendario come intero a quattro cifre, ad esempio 2026. Il riferimento è il fuso orario del mercato dello strumento, che può differire da quello della macchina locale. La costante non accetta parametri né offset tra parentesi quadre.
Il valore appartiene alla famiglia Current di costanti di data e ora, che descrivono il momento dell'esecuzione anziché un bar del grafico. Ogni bar di un calcolo vede quindi lo stesso numero: un indicatore aggiornato nel 2026 restituisce 2026 su ogni bar storico. La costante equivalente per bar è Year, che restituisce l'anno della chiusura di ogni barra elaborata e cambia lungo l'asse temporale. La segmentazione anno per anno dei dati storici va fatta con Year; CurrentYear descrive il calendario attuale.
In un sistema ProOrder live CurrentYear è significativo, poiché il codice viene eseguito in tempo reale man mano che arrivano le bar. In un backtest riflette l'anno in cui viene eseguito il test, il che lo rende inadatto a condizioni storiche basate sull'anno.
Esempi
Esempio 1, Etichetta dell'anno corrente (Indicatore)
// Retrieve the year of the clock at execution time
iYear = CurrentYear
RETURN iYear AS "this is the current year"L'indicatore traccia una linea piatta all'anno corrente su tutto il grafico, aggiornata all'anno dell'orologio ogni volta che lo script viene ricalcolato.
Esempio 2, Scansione filtrata per anno (ProScreener)
// Return matches only from a chosen year onward
recentEnough = CurrentYear >= 2026
SCREENER[recentEnough AND close > Average[50](close)] (close AS "Close")Lo screener riporta risultati solo quando l'orologio raggiunge il 2026 o una data successiva, un semplice filtro di calendario su una scansione programmata.
Esempio 3, Stop basato sull'anno (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
ENDIFIn live, il sistema si ferma da sé una volta che il calendario entra nel 2027. I backtest non possono esercitare questo ramo in modo significativo, perché CurrentYear contiene su ogni bar l'anno dell'esecuzione del test.
Errori e insidie comuni
- Stesso valore su ogni bar. CurrentYear descrive il calendario, non il grafico, quindi una condizione come
CurrentYear = 2026è vero o falso per l'intero calcolo in una sola volta. La logica annuale bar per bar richiedeYear. - Punto cieco del backtest. In un backtest CurrentYear restituisce l'anno in cui viene eseguito il test, quindi i filtri per anno costruiti su di esso passano o bloccano in blocco e producono risultati che non corrispondono al comportamento live.
- Fuso orario del mercato, non ora locale. L'anno è riferito al mercato dello strumento e non si adatta allo scarto locale di chi guarda.
- Nessun offset tra parentesi.
CurrentYear[1]non compila. Solo costanti per bar comeYear[N]accettano un indice.
Istruzioni correlate
Year, anno a quattro cifre della chiusura di ogni bar, l'equivalente per bar di questa costante.OpenYear, anno all'apertura di ogni bar.CurrentMonth, mese dell'orologio al momento dell'esecuzione.CurrentHour, ora dell'orologio al momento dell'esecuzione.CurrentTime, orario completo dell'orologio all'esecuzione come intero HHMMSS.Month, mese di ogni bar.Day, giorno del mese di ogni bar.TIME, orario di chiusura di ogni bar come intero HHMMSS.