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

CurrentSecond

CurrentSecond devuelve el segundo del reloj en el momento de la ejecución, 0 a 59, idéntico en cada bar del gráfico. Usa Second para leer el segundo del cierre de cada bar.

Sintaxis

probuilder
CurrentSecond

Cómo funciona

CurrentSecond lee el reloj en el momento en que se ejecuta el código y devuelve el segundo dentro del minuto actual, de 0 a 59. La referencia es la zona horaria del mercado del instrumento, que puede diferir de la de la máquina local. La constante no toma parámetros ni desplazamiento entre corchetes.

El valor pertenece a la familia Current de constantes de fecha y hora, que describen el momento de la ejecución y no un bar del gráfico. Por tanto, todos los bars de un cálculo ven el mismo número: un indicador refrescado a las 14:20:30 devuelve 30 en cada bar histórico. Su equivalente por bar es Second, que devuelve el segundo del cierre de cada bar que se procesa y cambia a lo largo del eje temporal. La temporización por debajo del minuto en datos históricos corresponde a Second; CurrentSecond describe la hora del reloj actual.

En un sistema ProOrder en vivo CurrentSecond tiene sentido, ya que el código se ejecuta en tiempo real a medida que llegan los bars. En un backtest refleja el segundo en que se ejecuta la prueba, lo que lo hace inadecuado para condiciones históricas de entrada o salida.

Ejemplos

Ejemplo 1, Marca de medio minuto (Indicador)

probuilder
// Set the flag when the script executes at 30 seconds past the minute
mySecond = CurrentSecond
IF mySecond = 30 THEN
    onHalfMinute = 1
ELSE
    onHalfMinute = 0
ENDIF
RETURN onHalfMinute

El indicador dibuja 1 en todo el gráfico cuando se recalcula exactamente en el segundo 30 del minuto actual, y 0 en caso contrario.

Ejemplo 2, Escaneo en los primeros segundos (ProScreener)

probuilder
// Return matches only in the first ten seconds of the minute
earlySecond = CurrentSecond < 10
SCREENER[earlySecond AND close > Average[20](close)] (close AS "Close")

El screener devuelve una lista vacía una vez que el reloj pasa el segundo 10, una forma de repartir los escaneos programados en una ventana estrecha.

Ejemplo 3, Comprobación condicionada por el segundo (ProOrder)

probuilder
// Only evaluate entries during the last seconds of a minute
DEFPARAM CumulateOrders = false
lateSecond = CurrentSecond >= 55
IF lateSecond AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

En vivo, el sistema solo comprueba la señal en los últimos segundos de cada minuto. Los backtests no pueden ejercitar esta rama de forma significativa, porque CurrentSecond contiene el segundo de la ejecución de la prueba en cada bar.

Errores y trampas habituales

  • El mismo valor en cada bar. CurrentSecond describe el reloj, no el gráfico, por lo que una condición como CurrentSecond = 30 es verdadero o falso para todo el cálculo a la vez. La lógica de temporización por bar necesita Second.
  • Punto ciego del backtest. En un backtest CurrentSecond devuelve el segundo en que se ejecuta la prueba, por lo que los filtros construidos sobre él pasan o bloquean en bloque y producen resultados que no coinciden con el comportamiento en vivo.
  • Ventana de coincidencia estrecha. Una prueba exacta como CurrentSecond = 30 solo se cumple durante un único segundo de reloj, por lo que es poco probable que un recálculo caiga justo ahí. Rangos como CurrentSecond < 10 son más fiables.
  • Sin desplazamiento entre corchetes. CurrentSecond[1] no compila. Solo constantes por barra como Second[N] aceptan un índice.
  • Second, segundo del cierre de cada bar, el equivalente por bar de esta constante.
  • OpenSecond, segundo en la apertura de cada bar.
  • CurrentMinute, minuto del reloj en el momento de la ejecución.
  • CurrentHour, hora del reloj en el momento de la ejecución.
  • CurrentTime, hora completa del reloj en la ejecución como entero HHMMSS.
  • Minute, minuto del cierre de cada bar.
  • TIME, hora de cierre de cada bar como entero HHMMSS.
  • Timestamp, tiempo UNIX del cierre de cada bar.