Iscriviti ora
Data e ora/probuilder · probacktest · proorder · proscreener

DayOfWeek

DayOfWeek restituisce il giorno della settimana di una bar, da 1 per lunedì a 7 per domenica. DayOfWeek accetta un offset tra parentesi quadre come DayOfWeek[1] per leggere una bar precedente.

Sintassi

probuilder
DayOfWeek[N]

Come funziona

DayOfWeek restituisce il giorno della settimana della bar in elaborazione, come intero da 1 a 7. Lunedì è 1, martedì 2, e così via fino a domenica, che è 7. Legge la data di calendario associata a ogni bar, quindi cambia lungo l'asse temporale: su un grafico giornaliero il valore percorre 1, 2, 3, 4, 5 nell'arco di una settimana di contrattazioni e salta i giorni in cui il mercato è chiuso.

L'indice opzionale N seleziona un bar relativo a quello in elaborazione. DayOfWeek[0], o semplice DayOfWeek, è il bar attuale. Un positivo N guarda indietro: DayOfWeek[1] è la barra precedente. Il grafico deve contenere storico sufficiente per l'offset richiesto, altrimenti il valore è indefinito al bordo sinistro.

DayOfWeek è il giorno della settimana del bar. Le sue affini sono CurrentDayOfWeek, che legge il giorno della settimana dell'orologio al momento dell'esecuzione, e OpenDayOfWeek, che legge il giorno della settimana all'apertura di ogni barra. Poiché la maggior parte dei mercati non negozia ogni giorno di calendario, i valori del fine settimana compaiono raramente sul grafico di un singolo strumento.

Esempi

Esempio 1, Flag del lunedì (Indicatore)

probuilder
// Flag bars that fall on a Monday
myDay = DayOfWeek[0]
IF myDay = 1 THEN
    isMonday = 1
ELSE
    isMonday = 0
ENDIF
RETURN isMonday

L'indicatore traccia 1 su ogni bar del lunedì e 0 nel resto della settimana, un modo rapido per vedere dove inizia ogni settimana di contrattazioni.

Esempio 2, Scansione delle bar del venerdì (ProScreener)

probuilder
// Match instruments whose latest bar is a Friday
isFriday = DayOfWeek = 5
SCREENER[isFriday AND close > Average[20](close)] (DayOfWeek AS "Weekday")

Lo screener restituisce solo gli strumenti il cui bar più recente cade di venerdì, con il numero del giorno della settimana mostrato come riferimento.

Esempio 3, Evitare gli ingressi del lunedì (ProOrder)

probuilder
// Skip new entries on Mondays, take them on other weekdays
DEFPARAM CumulateOrders = false
notMonday = DayOfWeek <> 1
IF notMonday AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

La strategia rifiuta nuovi ingressi sui bar di lunedì e accetta i segnali nel resto della settimana, un filtro comune per i sistemi che considerano rumoroso il primo giorno della settimana.

Errori e insidie comuni

  • Lunedì è 1, domenica è 7. La numerazione va da 1 a 7 a partire da lunedì. Un test scritto come se domenica fosse 0 sarà sfalsato di uno.
  • I bar del fine settimana sono rari. Sulla maggior parte degli strumenti il mercato è chiuso nei fine settimana, quindi i valori 6 e 7 compaiono raramente. Non dare per scontato che siano presenti.
  • Per bar, non l'orologio. DayOfWeek legge la data di ogni bar. Per il giorno della settimana del momento in cui il codice viene eseguito, usa CurrentDayOfWeek.
  • Offset oltre lo storico. DayOfWeek[N] richiede N bar di storico. Vicino al bordo sinistro del grafico il valore non è definito.
  • CurrentDayOfWeek, giorno della settimana dell'orologio al momento dell'esecuzione.
  • OpenDayOfWeek, giorno della settimana all'apertura di ogni bar.
  • Day, giorno del mese di ogni bar, da 1 a 31.
  • Month, mese di ogni bar.
  • Year, anno a quattro cifre di ogni bar.
  • Days, giorni interi trascorsi dal 1 gennaio 1900 fino a ogni bar.
  • TIME, orario di chiusura di ogni bar come intero HHMMSS.
  • Today, data della bar corrente in forma YYYYMMDD.