CurrentMonth
CurrentMonth restituisce il mese dell'orologio al momento dell'esecuzione, da 1 a 12, identico su ogni bar del grafico. Usa Month per leggere il mese della chiusura di ogni bar.
Sintassi
CurrentMonthCome funziona
CurrentMonth legge l'orologio nel momento in cui il codice viene eseguito e restituisce il mese di calendario, da 1 per gennaio a 12 per dicembre. 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 in ottobre restituisce 10 su ogni bar storico. La costante equivalente per bar è Month, che restituisce il mese della chiusura di ogni barra elaborata e cambia lungo l'asse temporale. La logica stagionale applicata ai dati storici va usata con Month; CurrentMonth descrive il calendario attuale.
In un sistema ProOrder live CurrentMonth è significativo, poiché il codice viene eseguito in tempo reale man mano che arrivano le bar. In un backtest riflette il mese in cui viene eseguito il test, il che lo rende inadatto a condizioni stagionali storiche.
Esempi
Esempio 1, Flag del mese di Halloween (Indicatore)
// Set the flag when the script executes during October
IF (CurrentMonth = 10) THEN
HalloweenMonth = 1
ELSE
HalloweenMonth = 0
ENDIF
RETURN HalloweenMonthL'indicatore traccia 1 su tutto il grafico quando viene ricalcolato durante ottobre ora di mercato, e 0 in qualsiasi altro mese.
Esempio 2, Scansione limitata a una stagione (ProScreener)
// Return matches only during the fourth quarter
inQ4 = (CurrentMonth >= 10) AND (CurrentMonth <= 12)
SCREENER[inQ4 AND close > Average[50](close)] (close AS "Close")Lo screener restituisce un elenco vuoto fuori da ottobre, novembre e dicembre, un modo per mantenere una scansione attiva solo durante una stagione scelta.
Esempio 3, Strategia filtrata per mese (ProOrder)
// Skip new entries during the summer month of August
DEFPARAM CumulateOrders = false
IF CurrentMonth = 8 THEN
QUIT
ENDIF
IF close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFIn live, il sistema si ferma da sé per tutto il mese di agosto. I backtest non possono esercitare questo ramo in modo significativo, perché CurrentMonth contiene su ogni bar il mese dell'esecuzione del test.
Errori e insidie comuni
- Stesso valore su ogni bar. CurrentMonth descrive il calendario, non il grafico, quindi una condizione come
CurrentMonth = 10è vero o falso per l'intero calcolo in una sola volta. La logica stagionale per singolo bar richiedeMonth. - Punto cieco del backtest. In un backtest CurrentMonth restituisce il mese in cui viene eseguito il test, quindi i filtri stagionali 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. Il mese è riferito al mercato dello strumento e non si adatta allo scarto locale di chi guarda.
- Nessun offset tra parentesi.
CurrentMonth[1]non compila. Solo costanti per bar comeMonth[N]accettano un indice.
Istruzioni correlate
Month, mese della chiusura di ogni bar, l'equivalente per bar di questa costante.OpenMonth, mese all'apertura di ogni bar.CurrentYear, anno dell'orologio al momento dell'esecuzione.CurrentHour, ora dell'orologio al momento dell'esecuzione.CurrentTime, orario completo dell'orologio all'esecuzione come intero HHMMSS.Year, anno a quattro cifre di ogni bar.Day, giorno del mese di ogni bar.TIME, orario di chiusura di ogni bar come intero HHMMSS.