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
OpenDayCó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)
// 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 firstDayEl 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)
// 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
ENDIFComparar 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)
// 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
Daysigue 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 <= 3combinado 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 = 1es 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.
Instrucciones relacionadas
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.