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

Timestamp

Timestamp devuelve el timestamp Unix de la hora de cierre de la vela actual en ProBuilder, contando los segundos transcurridos desde el 1 de enero de 1970 a las 00:00 UTC.

Sintaxis

probuilder
Timestamp

La palabra clave no acepta parámetros. Un índice de histórico entre corchetes lee bars anteriores, así que Timestamp[1] da la marca de tiempo de cierre de la barra anterior.

Cómo funciona

Un timestamp Unix representa el tiempo como el número total de segundos transcurridos desde la época Unix, el 1 de enero de 1970 a las 00:00:00 UTC. Timestamp informa de ese recuento para el cierre de cada vela. La escala es universal: no depende de la configuración de zona horaria de la plataforma, de la ubicación geográfica ni de las reglas del horario de verano, lo que la convierte en la base fiable para el cálculo de tiempos en los scripts de trading.

Como el recuento es lineal, restar dos valores de Timestamp da una diferencia exacta en segundos. Esta es la propiedad que los valores HHMMSS como TIME no tienen, ya que sus dígitos codifican horas y minutos por posición. Los patrones típicos incluyen guardar la marca de tiempo de un evento de referencia en una variable y comparar después los bars posteriores con ella para medir cuánto tiempo ha pasado.

La palabra clave relacionada OpenTimestamp informa del tiempo Unix de la apertura de la bar en lugar del cierre. En una bar completada, Timestamp - OpenTimestamp equivale a la duración de la barra. En la barra en formación, Timestamp sigue avanzando, por lo que la misma expresión mide la antigüedad de la barra hasta ese momento.

Ejemplos

Ejemplo 1, Segundos transcurridos desde la apertura de la semana (Indicador)

probuilder
// Store the timestamp of the first bar of each new week
IF DayOfWeek < DayOfWeek[1] THEN
  firstBarTime = Timestamp
ENDIF
RETURN Timestamp - firstBarTime AS "elapsed seconds"

Una caída en el número del día de la semana marca la primera bar de una nueva semana. Su Timestamp se almacena, y cada bar siguiente representa el número de segundos transcurridos desde esa referencia.

Ejemplo 2, Salir de una posición tras un tiempo de mantenimiento fijo (ProOrder)

probuilder
// Record the entry time, then exit after two hours on market
IF NOT OnMarket AND close CROSSES OVER Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
  entryStamp = Timestamp
ENDIF
IF LongOnMarket AND Timestamp - entryStamp >= 7200 THEN
  SELL AT MARKET
ENDIF

El Timestamp de la bar de entrada se guarda cuando se abre la posición. Una vez que la diferencia alcanza 7200 segundos, dos horas, la posición se cierra independientemente del precio.

Ejemplo 3, Excluir instrumentos con datos escasos (ProScreener)

probuilder
// Match instruments whose last two bars closed less than a day apart
active = Timestamp - Timestamp[1] < 86400
SCREENER[active] ("Bar age")

Comparar los timestamps de cierre de las dos últimas bars descarta los instrumentos cuyos datos llegan con menos frecuencia que una vez al día.

Errores y trampas habituales

  • Segundos, no milisegundos. Los timestamps de ProBuilder cuentan segundos. Los umbrales copiados de entornos que usan épocas en milisegundos están desviados por un factor de 1000.
  • Hora de cierre, no hora del reloj. En las bars históricas, Timestamp es el momento en que esa bar cerró, no el momento actual. Tratarlo como "ahora" durante la reproducción de un backtest da lugar a condiciones que nunca fueron verdaderas históricamente.
  • No es comparable con fechas ni con valores HHMMSS. Una marca de tiempo como 1719849600 no comparte escala con 20240701 o 140000. Las comparaciones entre formatos compilan, pero producen resultados sin sentido.
  • Variables de referencia sin inicializar. Patrones como Timestamp - firstBarTime devuelven el recuento completo de epoch hasta que la variable de referencia se asigna por primera vez, ya que las variables no asignadas empiezan en 0. Protege la expresión o espera hasta que el evento de referencia haya ocurrido.
  • OpenTimestamp, timestamp Unix de la apertura de la bar.
  • CurrentTime, hora del reloj en formato HHMMSS.
  • OpenTime, hora de apertura del bar como entero HHMMSS.
  • TIME, hora de cierre de un bar en formato HHMMSS.
  • DayOfWeek, día de la semana de la bar, útil para anclajes semanales.
  • Today, fecha del bar actual en formato YYYYMMDD.
  • BarIndex, número de bars desde el principio del historial cargado.