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

Days

Days devuelve el número entero de días transcurridos desde el 1 January 1900 hasta un bar. Days admite un desplazamiento entre corchetes como Days[1] y ayuda a medir diferencias de fechas.

Sintaxis

probuilder
Days[N]

Cómo funciona

Days devuelve un único entero monótono: el número de días naturales desde la fecha de referencia del 1 de enero de 1900 hasta la fecha del bar que se está procesando. Como condensa la fecha completa en un solo número que solo aumenta, es la herramienta natural para medir la distancia entre dos bars. La diferencia Days[0] - Days[N] es el número de días naturales que separan el bar actual del bar N posiciones atrás.

El recuento incluye todos los días naturales, tanto fines de semana como festivos, por lo que mide el tiempo transcurrido en lugar de las sesiones de negociación. Esto lo distingue de un simple recuento de bars, que omite los días en los que el mercado está cerrado.

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

Ejemplos

Ejemplo 1, Días transcurridos en el bar actual (Indicador)

probuilder
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDays

El indicador dibuja una línea que asciende lentamente, incrementándose en el número de días naturales entre bars sucesivos. Los huecos de los fines de semana y festivos aparecen como escalones mayores.

Ejemplo 2, Buscar un nuevo día natural (ProScreener)

probuilder
// Match instruments whose latest bar is on a different calendar day from the previous bar
newDay = Days > Days[1]
SCREENER[newDay AND close > Average[20](close)] (close AS "Close")

En un gráfico intraday Days > Days[1] es verdadero solo en el primer bar de un nuevo día natural, por lo que el screener aísla el bar de apertura de la sesión.

Ejemplo 3, Filtro de días en operación (ProOrder)

probuilder
// Close the position once it has been held for at least five calendar days
DEFPARAM CumulateOrders = false
IF NOT LONGONMARKET AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
    entryDays = Days
ENDIF
IF LONGONMARKET AND (Days - entryDays) >= 5 THEN
    SELL AT MARKET
ENDIF

La estrategia guarda el valor de Days en la entrada y después sale cuando han pasado cinco días naturales, contando fines de semana y festivos porque Days mide el tiempo natural transcurrido.

Errores y trampas habituales

  • La fecha de referencia es el 1 January 1900. El número absoluto solo tiene sentido como diferencia. Resta dos valores de Days para obtener un intervalo en días.
  • Días naturales, no días de negociación. Days cuenta todos los días naturales, por lo que un bar del lunes que sigue a un bar del viernes difiere en 3, no en 1. No es un recuento de bars.
  • No es una fecha formateada. Days es un recuento acumulado, no una fecha YYYYMMDD. Para una fecha legible usa Today o combinar Day, Month y Year.
  • Desplazamiento más allá del historial. Days[N] necesita N bars de histórico. Cerca del borde izquierdo del gráfico el valor no está definido.
  • Day, día del mes de cada bar, de 1 a 31.
  • DayOfWeek, día de la semana de cada bar, de 1 para lunes a 7 para domingo.
  • Month, mes de cada bar.
  • Year, año de cuatro cifras de cada bar.
  • Timestamp, tiempo UNIX del cierre de cada bar, un reloj monótono alternativo.
  • TIME, hora de cierre de cada bar como entero HHMMSS.
  • Yesterday, fecha del día anterior a un bar, en formato YYYYMMDD.
  • Today, fecha del bar actual en formato YYYYMMDD.