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

OpenYear

OpenYear devuelve el año en el que abrió la sesión de negociación del bar actual, como un entero de cuatro dígitos. Útil para filtros anuales en scripts de ProBuilder.

Sintaxis

probuilder
OpenYear

La palabra clave no acepta parámetros. Un índice de histórico entre corchetes lee bars anteriores, así que OpenYear[1] da el año de apertura del bar anterior.

Cómo funciona

Cada bar registra la fecha y la hora en que empezó a formarse. OpenYear extrae el componente de año de ese momento de apertura y lo devuelve como un entero de cuatro dígitos. El valor no está codificado dentro de un número de fecha más grande, por lo que puede compararse directamente con literales como 2020 sin ninguna decodificación.

La palabra clave pertenece a la familia de componentes de fecha basados en la apertura, junto con OpenMonth, OpenDay, y OpenTime, todos los cuales describen cuándo se abrió el bar. El equivalente basado en el cierre es Year, que lee el año de la fecha del bar, y CurrentYear, que lee el año del reloj del sistema en lugar del de cualquier bar.

Los usos típicos incluyen restringir un backtest al historial reciente, separar las estadísticas por año de calendario y detectar el primer bar de un año nuevo comparando el valor con el del bar anterior.

Ejemplos

Ejemplo 1, dibujar el año de apertura de cada bar (Indicador)

probuilder
// Store the year in which the current bar's session opened
yearOpened = OpenYear
RETURN yearOpened

El indicador devuelve el año de apertura de cada bar, lo que hace visibles los límites de año como escalones en la línea trazada.

Ejemplo 2, limitar una estrategia a los años recientes (ProBacktest)

probuilder
// Only evaluate entries on bars that opened in 2020 or later
IF OpenYear >= 2020 THEN
  IF close CROSSES OVER Average[100](close) THEN
    BUY 1 SHARES AT MARKET
  ENDIF
ENDIF

El filtro de año excluye del backtest el historial más antiguo incluso cuando se carga un rango de datos más largo, manteniendo los resultados centrados en el periodo elegido.

Ejemplo 3, detectar el primer bar de un año nuevo (ProScreener)

probuilder
// Match instruments printing their first bar of a new calendar year
newYear = OpenYear > OpenYear[1]
SCREENER[newYear] ("New year")

Comparar el año de apertura del bar actual con el del bar anterior aísla el único bar en el que cambia el año.

Errores y trampas habituales

  • Comparar con fechas completas. OpenYear devuelve 2023, no 20230101. Compararlo con literales YYYYMMDD evalúa a falso sin avisar. Las comparaciones de fecha completa corresponden a OpenDate o Today.
  • Año de apertura frente al de cierre. En las bars que cruzan la medianoche del 31 de diciembre, el año de apertura y el de cierre difieren. Year sigue la fecha del bar mientras que OpenYear sigue la apertura, por lo que no son intercambiables en los cambios de año.
  • Reloj frente a bar. CurrentYear lee el reloj del ordenador y es igual en cada bar durante una ejecución. OpenYear varía bar a bar. Usar CurrentYear en un filtro histórico hace que todo el historial pase o falle de golpe.
  • CurrentYear, año de la fecha actual del reloj.
  • Year, año del bar N periodos antes del actual.
  • OpenMonth, mes en el que abrió el bar.
  • OpenDay, día del mes en el que abrió el bar.
  • OpenDate, fecha completa de apertura del bar en formato YYYYMMDD.
  • OpenTime, hora de apertura del bar como entero HHMMSS.
  • Today, fecha del bar actual en formato YYYYMMDD.