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

OpenDay

OpenDay devuelve el día del mes (1 a 31) en que abrió el bar actual en ProBuilder. Útil para lógica ligada a días de calendario concretos de cada mes.

Sintaxis

probuilder
OpenDay

Cómo funciona

OpenDay lee la marca de tiempo de apertura del bar actual y devuelve su componente de día del mes como un número entero entre 1 y 31. La palabra clave no toma parámetros ni necesita datos de mercado, funciona únicamente con la fecha asociada al bar.

La palabra clave pertenece a la familia Open, que describe cuándo abrió una bar. La variante simple Day describe en cambio la fecha de cierre del bar. En bars intraday y diarios ambas suelen coincidir, pero en bars semanales o mensuales, o en cualquier bar que cruce la medianoche, los días de apertura y de cierre pueden diferir.

Como el valor es un día del mes, no dice nada sobre el día de la semana. Una condición sobre OpenDay = 1 se activa el primer día natural presente en los datos, que puede ser un día de la semana distinto cada mes, y puede omitirse por completo cuando el día uno cae en fin de semana y no abre ningún bar ese día.

Entre las aplicaciones habituales están las entradas a principio de mes, los anclajes de reequilibrio mensual y los estudios del comportamiento en torno a días de calendario recurrentes, como las fechas relacionadas con opciones.

Ejemplos

Ejemplo 1, Detectar un bar que abre el primer día del mes (Indicador)

probuilder
// Check whether the current bar opened on day 1 of the month
iDay = OpenDay
if iDay = 1 then
  // code for bars opening on the first calendar day
  firstDay = 1
else
  firstDay = 0
endif
RETURN firstDay

El indicador dibuja 1 para los bars que abrieron el primer día de un mes y 0 en los demás casos, haciendo visibles en el gráfico los cambios de calendario.

Ejemplo 2, Entrada a principio de mes (ProBacktest)

probuilder
// Buy on the first bar opening in the first three days of each month
startOfMonth = OpenDay <= 3 AND OpenDay[1] > 3

IF startOfMonth AND NOT LONGONMARKET THEN
  BUY 1 SHARES AT MARKET
ENDIF

Comparar el valor actual con el anterior detecta la transición a un nuevo mes incluso cuando el día 1 cae en fin de semana y el primer bar negociado abre el día 2 o 3.

Ejemplo 3, Filtrar solo a principios de mes (ProScreener)

probuilder
// Match strong instruments during the first week of the month
earlyMonth = OpenDay <= 7
strong = close > Average[50](close)

SCREENER[earlyMonth AND strong] (OpenDay AS "Open day")

El screener limita los resultados a los bars que abren en los primeros siete días del calendario, mostrando el día de apertura como columna de resultados.

Errores y trampas habituales

  • Día de apertura frente a día de cierre. OpenDay se refiere a la fecha de apertura del bar. La instrucción hermana Day sigue la fecha de cierre y puede diferir en las bars que cruzan la medianoche o el límite de un mes.
  • El día 1 puede no existir en los datos. Cuando el primero del mes cae en un día no hábil de negociación, no abre ninguna bar el día 1. Prueba un rango pequeño como OpenDay <= 3 combinado con una comprobación de transición en lugar de una igualdad exacta.
  • Día del calendario, no día de la semana. Los valores de 1 a 31 indexan el día del mes. Para lógica de día de la semana, como filtros de lunes, usa OpenDayOfWeek.
  • Se dispara en cada bar que cumple la condición. En gráficos intraday, OpenDay = 1 es verdadero para todas las bars que abren ese día. Combínalo con una prueba de transición o una condición horaria para actuar solo una vez.
  • Day, día del mes de la fecha de cierre de un bar, la forma hermana de OpenDay.
  • OpenDate, fecha de apertura completa del bar actual en formato YYYYMMDD.
  • OpenDayOfWeek, día de la semana en que abrió el bar actual.
  • OpenMonth, número del mes en el que abrió el bar actual.
  • OpenYear, año en el que abrió el bar actual.
  • CurrentDayOfWeek, día de la semana del reloj de la máquina.
  • Today, fecha del bar actual en formato YYYYMMDD.