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

CurrentMinute

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

Sintaxis

probuilder
CurrentMinute

Cómo funciona

CurrentMinute lee el reloj en el momento en que se ejecuta el código y devuelve el minuto dentro de la hora 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 devuelve 20 en cada bar histórico. Su equivalente por bar es Minute, que devuelve el minuto del cierre de cada bar que se procesa y cambia a lo largo del eje temporal. Los filtros de sesión aplicados a datos históricos corresponden a Minute o TIME; CurrentMinute describe la hora del reloj actual.

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

Ejemplos

Ejemplo 1, Marca de inicio de hora (Indicador)

probuilder
// Set the flag when the script executes in the first minute of an hour
IF (CurrentMinute = 0) THEN
    onTheHour = 1
ELSE
    onTheHour = 0
ENDIF
RETURN onTheHour

El indicador dibuja 1 en todo el gráfico cuando se recalcula entre el minuto 0 y el minuto 0 de la hora actual, y 0 en cualquier otro punto de la hora.

Ejemplo 2, Escaneo en un minuto fijado (ProScreener)

probuilder
// Return matches only during the first half of the current hour
inFirstHalf = CurrentMinute < 30
SCREENER[inFirstHalf AND close > Average[20](close)] (close AS "Close")

El screener devuelve una lista vacía una vez que el reloj pasa el minuto 30, una forma de mantener en silencio un escaneo programado en la segunda mitad de cada hora.

Ejemplo 3, Entrada alineada al minuto (ProOrder)

probuilder
// Only allow entries near the top of the hour
DEFPARAM CumulateOrders = false
readyToTrade = CurrentMinute <= 5
IF readyToTrade AND close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

En vivo, el sistema solo toma señales en los primeros cinco minutos de la hora. Los backtests no pueden ejercitar esta rama de forma significativa, porque CurrentMinute contiene el minuto de la ejecución de la prueba en cada bar.

Errores y trampas habituales

  • El mismo valor en cada bar. CurrentMinute describe el reloj, no el gráfico, por lo que una condición como CurrentMinute = 0 es verdadero o falso para todo el cálculo a la vez. La lógica de temporización por bar necesita Minute o TIME.
  • Punto ciego del backtest. En un backtest CurrentMinute devuelve el minuto 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.
  • Zona horaria del mercado, no hora local. El minuto está referenciado al mercado del instrumento. Leer el reloj no se ajusta al desfase local del espectador.
  • Sin desplazamiento entre corchetes. CurrentMinute[1] no compila. Solo constantes por barra como Minute[N] aceptan un índice.
  • Minute, minuto del cierre de cada bar, el equivalente por bar de esta constante.
  • OpenMinute, minuto en la apertura de cada bar.
  • CurrentHour, hora del reloj en el momento de la ejecución.
  • CurrentSecond, segundo del reloj en el momento de la ejecución.
  • CurrentTime, hora completa del reloj en la ejecución como entero HHMMSS.
  • CurrentYear, año del reloj en el momento de la ejecución.
  • TIME, hora de cierre de cada bar como entero HHMMSS.
  • Timestamp, tiempo UNIX del cierre de cada bar.