DayOfWeek
DayOfWeek devuelve el día de la semana de un bar, 1 para lunes a 7 para domingo. DayOfWeek acepta un desplazamiento entre corchetes como DayOfWeek[1] para leer un bar anterior.
Sintaxis
DayOfWeek[N]Cómo funciona
DayOfWeek devuelve el día de la semana del bar que se está procesando, como un entero de 1 a 7. El lunes es 1, el martes 2, y así sucesivamente hasta el domingo, que es 7. Lee la fecha de calendario asociada a cada bar, por lo que cambia a lo largo del eje temporal: en un gráfico diario el valor recorre 1, 2, 3, 4, 5 a lo largo de una semana de negociación y omite los días en los que el mercado está cerrado.
El índice opcional N selecciona un bar relativo al que se está procesando. DayOfWeek[0], o simple DayOfWeek, es el bar actual. Un valor positivo N mira atrás: DayOfWeek[1] es la barra anterior. El gráfico debe contener suficiente historial para el desplazamiento solicitado; si no, el valor queda indefinido en el borde izquierdo.
DayOfWeek es el día de la semana de cada bar. Sus instrucciones hermanas son CurrentDayOfWeek, que lee el día de la semana del reloj en el momento de ejecución, y OpenDayOfWeek, que lee el día de la semana en la apertura de cada bar. Como la mayoría de los mercados no cotizan todos los días del calendario, los valores de fin de semana rara vez aparecen en un gráfico de un solo instrumento.
Ejemplos
Ejemplo 1, Marca de lunes (Indicador)
// Flag bars that fall on a Monday
myDay = DayOfWeek[0]
IF myDay = 1 THEN
isMonday = 1
ELSE
isMonday = 0
ENDIF
RETURN isMondayEl indicador dibuja 1 en cada bar de lunes y 0 en el resto de la semana, una forma rápida de ver dónde empieza cada semana de negociación.
Ejemplo 2, Búsqueda de bars de viernes (ProScreener)
// Match instruments whose latest bar is a Friday
isFriday = DayOfWeek = 5
SCREENER[isFriday AND close > Average[20](close)] (DayOfWeek AS "Weekday")El screener devuelve solo los instrumentos cuyo bar más reciente cae en viernes, con el número del día de la semana mostrado como referencia.
Ejemplo 3, Evitar entradas en lunes (ProOrder)
// 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
ENDIFLa estrategia rechaza nuevas entradas en los bars del lunes y toma señales el resto de la semana, un filtro habitual en sistemas que consideran el primer día de la semana como ruidoso.
Errores y trampas habituales
- El lunes es 1, el domingo es 7. La numeración va de 1 a 7 desde el lunes. Una prueba escrita como si el domingo fuera 0 estará desplazada en uno.
- Los bars de fin de semana son poco frecuentes. En la mayoría de los instrumentos el mercado está cerrado los fines de semana, por lo que los valores 6 y 7 rara vez aparecen. No cuentes con que estén presentes.
- Por bar, no el reloj. DayOfWeek lee la fecha de cada bar. Para el día de la semana del momento en que se ejecuta el código, usa
CurrentDayOfWeek. - Desplazamiento más allá del historial.
DayOfWeek[N]necesitaNbars de histórico. Cerca del borde izquierdo del gráfico el valor no está definido.
Instrucciones relacionadas
CurrentDayOfWeek, día de la semana del reloj en el momento de la ejecución.OpenDayOfWeek, día de la semana en la apertura de cada bar.Day, día del mes de cada bar, de 1 a 31.Month, mes de cada bar.Year, año de cuatro cifras de cada bar.Days, días completos transcurridos desde el 1 de enero de 1900 hasta cada bar.TIME, hora de cierre de cada bar como entero HHMMSS.Today, fecha del bar actual en formato YYYYMMDD.