Days
Days restituisce il numero intero di giorni trascorsi dal 1 January 1900 fino a un bar. Days accetta un offset tra parentesi quadre come Days[1] e aiuta a misurare le differenze tra date.
Sintassi
Days[N]Come funziona
Days restituisce un singolo intero monotono: il numero di giorni di calendario dalla data di riferimento del 1 gennaio 1900 fino alla data del bar in elaborazione. Poiché riduce la data completa a un unico numero che può solo crescere, è lo strumento naturale per misurare la distanza tra due bar. La differenza Days[0] - Days[N] è il numero di giorni di calendario che separano la bar corrente dalla bar N posizioni indietro.
Il conteggio include ogni giorno di calendario, fine settimana e festivi compresi, quindi misura il tempo trascorso anziché le sessioni di negoziazione. Questo lo distingue da un semplice conteggio dei bar, che salta i giorni in cui il mercato è chiuso.
L'indice opzionale N seleziona un bar relativo a quello in elaborazione. Days[0], o semplice Days, è il bar attuale. Un positivo N guarda indietro: Days[1] è la barra precedente. Il grafico deve contenere storico sufficiente per l'offset richiesto, altrimenti il valore è indefinito al bordo sinistro.
Esempi
Esempio 1, Giorni trascorsi al bar corrente (Indicatore)
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDaysL'indicatore traccia una linea che sale lentamente, incrementandosi del numero di giorni di calendario tra bar successivi. I gap nei fine settimana e nei giorni festivi appaiono come scalini più ampi.
Esempio 2, Ricerca di un nuovo giorno di calendario (ProScreener)
// Match instruments whose latest bar is on a different calendar day from the previous bar
newDay = Days > Days[1]
SCREENER[newDay AND close > Average[20](close)] (close AS "Close")Su un grafico intraday Days > Days[1] è vero solo sulla prima bar di un nuovo giorno di calendario, quindi lo screener isola la bar di apertura della sessione.
Esempio 3, Filtro sui giorni in posizione (ProOrder)
// Close the position once it has been held for at least five calendar days
DEFPARAM CumulateOrders = false
IF NOT LONGONMARKET AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
entryDays = Days
ENDIF
IF LONGONMARKET AND (Days - entryDays) >= 5 THEN
SELL AT MARKET
ENDIFLa strategia memorizza il valore di Days all'ingresso, poi esce una volta trascorsi cinque giorni di calendario, contando fine settimana e festivi perché Days misura il tempo di calendario trascorso.
Errori e insidie comuni
- La data di riferimento è il 1 January 1900. Il numero assoluto ha senso solo come differenza. Sottrai due valori di Days per ottenere un intervallo in giorni.
- Giorni di calendario, non giorni di negoziazione. Days conta ogni giorno di calendario, quindi un bar di lunedì che segue un bar di venerdì differisce di 3, non di 1. Non è un conteggio dei bar.
- Non è una data formattata. Days è un conteggio progressivo, non una data in formato YYYYMMDD. Per una data leggibile usa
Todayo combinareDay,MontheYear. - Offset oltre lo storico.
Days[N]richiedeNbar di storico. Vicino al bordo sinistro del grafico il valore non è definito.
Istruzioni correlate
Day, giorno del mese di ogni bar, da 1 a 31.DayOfWeek, giorno della settimana di ogni bar, da 1 per lunedì a 7 per domenica.Month, mese di ogni bar.Year, anno a quattro cifre di ogni bar.Timestamp, tempo UNIX della chiusura di ogni bar, un orologio monotono alternativo.TIME, orario di chiusura di ogni bar come intero HHMMSS.Yesterday, data del giorno precedente a una bar, in forma YYYYMMDD.Today, data della bar corrente in forma YYYYMMDD.