Únete hoy
Fecha y hora/probuilder · probacktest · proorder · proscreener

Day

Day devuelve el día del mes, 1 a 31, de un bar del gráfico. Day acepta un desplazamiento entre corchetes como Day[1] para leer el día de un bar anterior.

Sintaxis

probuilder
Day[N]

Cómo funciona

Day devuelve el día del mes del bar que se está procesando, como un entero de 1 a 31. Lee la fecha de calendario asociada a cada bar, por lo que, a diferencia de la familia Current, cambia a lo largo del eje temporal: los bars sucesivos en un gráfico diario recorren los días del mes, y el valor se reinicia después del último día de cada mes.

El índice opcional N selecciona un bar relativo al que se está procesando. Day[0], o simple Day, es el bar actual. Un valor positivo N mira atrás: Day[1] es el bar anterior, Day[5] es cinco barras atrás. El gráfico debe contener suficiente historial para el desplazamiento solicitado; si no, el valor queda indefinido en el borde izquierdo.

Day informa solo del número de día y no incluye mes ni año. Comparar Day valores a través de un cambio de mes pueden inducir a error, ya que al día 31 de un mes le sigue el día 1 del siguiente. Para una fecha completa usa Day junto con Month y Year, o recurra a Days y Timestamp cuando necesitas un único valor monótono.

Ejemplos

Ejemplo 1, Día del bar anterior (Indicador)

probuilder
// Retrieve the day of the month from the previous bar
myDay = Day[1]
RETURN myDay

El indicador dibuja el número de día del mes del bar inmediatamente anterior a cada bar procesado, una línea escalonada que sube a lo largo del mes y cae en cada cambio de mes.

Ejemplo 2, Búsqueda de bars de inicio de mes (ProScreener)

probuilder
// Match instruments whose latest bar falls in the first three days of a month
earlyInMonth = Day <= 3
SCREENER[earlyInMonth AND close > Average[20](close)] (Day AS "Day")

El screener devuelve solo los instrumentos cuyo bar más reciente se sitúa en los primeros días de un mes del calendario, con el número de día mostrado al lado.

Ejemplo 3, Filtro del primer día de negociación (ProOrder)

probuilder
// Allow entries only when a new month has just started
DEFPARAM CumulateOrders = false
newMonthStart = Day < Day[1]
IF newMonthStart AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

La condición Day < Day[1] es true en el primer bar de un nuevo mes, porque el número de día cae de un valor alto de vuelta a 1. La estrategia lo usa como filtro de entrada de una vez al mes.

Errores y trampas habituales

  • Día del mes, no de la semana. Day devuelve de 1 a 31, el día del calendario. Para el día de la semana usa DayOfWeek.
  • Sin mes ni año. Day solo contiene el número de día, por lo que el día 5 de marzo y el día 5 de abril son idénticos. Combínalo con Month y Year para una fecha completa.
  • Límites de mes. Una prueba como Day > Day[1] falla en el primer bar de un mes porque el número se reinicia a 1. Gestiona el cambio de mes explícitamente al comparar entre bars.
  • Desplazamiento más allá del historial. Day[N] necesita N bars de histórico. Cerca del borde izquierdo del gráfico el valor no está definido.
  • OpenDay, día del mes en la apertura de cada bar.
  • Month, mes de cada bar, se combina con Day para una fecha completa.
  • Year, año de cuatro cifras de cada bar.
  • DayOfWeek, día de la semana de cada bar, de 1 para lunes a 7 para domingo.
  • 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.
  • Timestamp, tiempo UNIX del cierre de cada bar.
  • Yesterday, fecha del día anterior a un bar, en formato YYYYMMDD.