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

OpenMonth

OpenMonth devuelve el mes, de 1 a 12, en el que abrió el bar actual. Usa Month para el mes del cierre del bar y CurrentMonth para el calendario actual.

Sintaxis

probuilder
OpenMonth

Cómo funciona

OpenMonth devuelve el mes del calendario en el que abrió el bar que se está procesando, de 1 para enero a 12 para diciembre. Lee la marca de tiempo de la apertura de cada bar, por lo que cambia a lo largo del eje temporal mientras el cálculo avanza de bar en bar.

OpenMonth es el miembro basado en la apertura del trío de meses. Sus hermanos son Month, que lee el mes del cierre de cada barra, y CurrentMonth, que lee el mes del reloj en el momento en que se ejecuta el código y es idéntico en cada bar. En marcos temporales diarios e inferiores, el mes de apertura y el mes de cierre de un bar son casi siempre el mismo; la distinción importa sobre todo en bars semanales o mensuales que cruzan el cambio de mes.

La constante no acepta parámetros ni desplazamiento entre corchetes. Se adapta a la lógica estacional que se basa en el mes en que empieza un bar, como aislar el primer bar de un mes nuevo o filtrar por una temporada concreta.

Ejemplos

Ejemplo 1, marcador de apertura en enero (Indicador)

probuilder
// Flag bars that opened in January
iMonth = OpenMonth
IF iMonth = 1 THEN
    openedInJan = 1
ELSE
    openedInJan = 0
ENDIF
RETURN openedInJan

El indicador dibuja 1 en los bars cuya apertura cae en enero y 0 en todos los demás meses, una forma sencilla de destacar el inicio de cada año en el gráfico.

Ejemplo 2, búsqueda de aperturas del cuarto trimestre (ProScreener)

probuilder
// Match instruments whose latest bar opened in the fourth quarter
q4Open = (OpenMonth >= 10) AND (OpenMonth <= 12)
SCREENER[q4Open AND close > Average[50](close)] (OpenMonth AS "OpenMonth")

El screener devuelve solo los instrumentos cuyo bar más reciente abrió en octubre, noviembre o diciembre, mostrando al lado el mes de apertura.

Ejemplo 3, filtro de entrada de mes nuevo (ProOrder)

probuilder
// Allow entries only on the first bar of a new month
DEFPARAM CumulateOrders = false
newMonth = OpenMonth <> Month[1]
IF newMonth AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

La condición compara el mes de apertura del bar actual con el mes de cierre del bar anterior, por lo que es verdadera en el primer bar después de un cambio de mes, lo que da un filtro de entrada de una vez al mes.

Errores y trampas habituales

  • Apertura, no cierre. OpenMonth lee el mes de la apertura de la bar. Para el cierre usa Month. Ambas rara vez difieren salvo en bars que cruzan el límite de un mes.
  • No es el calendario actual. OpenMonth es un valor por bar que cambia a lo largo del gráfico. Para el mes del momento en que se ejecuta el código, usa CurrentMonth.
  • No incluye el año. OpenMonth devuelve solo el número de mes, por lo que enero de 2025 y enero de 2026 resultan idénticos. Combínalo con OpenYear o Year cuando el año importa.
  • Sin desplazamiento entre corchetes. OpenMonth[1] no compila. Para acceder al mes de un bar anterior usa Month[N].
  • Month, mes del cierre de cada bar.
  • CurrentMonth, mes del reloj en el momento de la ejecución.
  • OpenYear, año en la apertura de cada bar.
  • OpenDay, día del mes en la apertura de cada bar.
  • OpenTime, hora de apertura de cada bar como entero HHMMSS.
  • Year, año de cuatro cifras de cada bar.
  • Day, día del mes de cada bar.
  • TIME, hora de cierre de cada bar como entero HHMMSS.