Today
Today restituisce la data di una bar N giorni di trading prima di quella corrente come numero intero YYYYMMDD. Today[0] fornisce la data del giorno corrente negli script ProBuilder.
Sintassi
Today
Today[N]Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| N | intero | 0 | Numero di periodi di contrattazione prima del bar corrente. 0 è il giorno corrente; N deve essere non negativo. |
Come funziona
Today espone le date come interi compatti nel formato YYYYMMDD, quindi 1 marzo 2024 diventa 20240301. Senza indice, o con Today[0], la parola chiave restituisce la data del giorno di trading corrente. Con un indice positivo torna indietro nella storia del grafico: Today[10] è la data del bar 10 periodi di contrattazione prima di quello corrente.
L'indice conta solo i giorni di negoziazione. I fine settimana e le festività di mercato non compaiono nei dati, quindi vengono saltati e non conteggiati, e Today[5] il lunedì risale tipicamente a più di cinque giorni di calendario.
Poiché gli interi YYYYMMDD crescono nel tempo, si ordinano correttamente con i normali operatori di confronto. Today >= 20240301 è un modo valido per limitare la logica alle date pari o successive al 1 marzo 2024. Ciò che il formato non supporta è l'aritmetica del calendario: la differenza tra due valori YYYYMMDD non è un numero di giorni, quindi le misurazioni del tempo trascorso dovrebbero usare Timestamp invece.
Esempi
Esempio 1, Leggere una data dieci giorni di trading indietro (Indicatore)
// Date of the bar 10 trading days before the current one
previousDate = Today[10]
RETURN previousDateL'indicatore restituisce la data YYYYMMDD della bar di dieci periodi di trading precedenti, saltando nel frattempo i fine settimana e i giorni festivi.
Esempio 2, Attivare una strategia a partire da una data fissa (ProBacktest)
// Ignore all signals before 1 March 2024
IF Today >= 20240301 THEN
IF close CROSSES OVER Average[20](close) THEN
BUY 1 SHARES AT MARKET
ENDIF
ENDIFIl filtro sulla data limita il backtest alle bar del giorno scelto o successive, anche quando sul grafico è caricato uno storico molto più lungo.
Esempio 3, Rilevare la prima bar di un nuovo giorno (ProScreener)
// Match instruments whose current bar starts a new calendar date
newDay = Today > Today[1]
SCREENER[newDay] ("New date")Poiché i valori YYYYMMDD crescono nel tempo, la data della bar corrente che supera quella precedente isola la prima bar di ogni nuovo giorno.
Errori e insidie comuni
- La sottrazione di date non è un conteggio di giorni.
20240301 - 20240229equivale a72, non 1. Gli interi YYYYMMDD sono composti posizionali, quindi le differenze a cavallo di un mese o di un anno non hanno significato. Le durate richiedonoTimestamp. - L'indice conta i giorni di trading. I giorni di non negoziazione sono assenti dai dati, quindi
Today[5]risale di cinque barre della serie giornaliera, non di cinque giorni di calendario. Intorno ai giorni festivi la distanza di calendario aumenta ulteriormente. - Indicizzare oltre lo storico caricato. Quando N supera il numero di bar disponibili sul grafico, la lettura non ha dati da leggere e il risultato è inutilizzabile. Mantieni N entro l'intervallo caricato o proteggiti dalle prime bar.
- Le abbreviazioni a due cifre non funzionano. Le date devono essere scritte per intero,
20240301, mai240301. I letterali troncati vengono confrontati con l'ordine di grandezza errato e la condizione si comporta male senza segnalarlo.
Istruzioni correlate
Yesterday, data del giorno che precede una determinata bar.Day, componente giorno del mese della data della bar.Month, componente mese della data della bar.Year, componente anno della data della bar.DayOfWeek, giorno della settimana della bar come numero.OpenDate, data in cui la bar si è aperta, in formato YYYYMMDD.TIME, orario di chiusura di una bar in formato HHMMSS.Days, numero di giorni trascorsi dal 1900 per il calcolo lineare dei giorni.