Problema con las alertas de los indicadores que utilizan compensaciones
Si se crea una alerta en un indicador que utiliza gráficos con desplazamientos, al comparar la señal de alerta con la señal del gráfico, puede parecer que la alerta se activa con retraso.
Veamos un ejemplo: una alerta que se dispara cuando se detecta un pivotHigh.
pivotHigh es un máximo cuyo valor es superior a un cierto número de máximos anteriores y posteriores. (En este ejemplo hay más de dos valores altos anteriores y posteriores).
Puede encontrar una barra en la que se cumpla la condición anterior utilizando este script de Pine:
//@version=6
indicator("PivotHigh", overlay=false)
plot(high)
plot(high, linewidth=2, style = plot.style_circles)
phDetected =
high[2] > high[0]
and high[2] > high[1]
and high[2] > high[3]
and high[2] > high[4]
plotshape(phDetected?high[2]:na, style=shape.labeldown, location=location.absolute, text="pivotHigh", textcolor=color.white, color=color.green, offset=0)
alertcondition(phDetected)
Al añadir el script al gráfico, vemos que la etiqueta se muestra en la barra de las 16:30, aunque el pivotHigh se encuentra 2 barras a la izquierda.

Si creamos una alerta sobre alertcondition desde un script, también se disparará sobre la barra de las 16:30 ya que en ella se cumple la condición de detección de pivotHigh.
Podemos añadir un desplazamiento a la función plotshape para mostrar la etiqueta en la barra pivotHigh.
plotshape(phDetected?high[2]:na, style=shape.labeldown, location=location.absolute, text="pivotHigh", textcolor=color.white, color=color.green, offset=-2)

Este desplazamiento es necesario solo por comodidad (se utiliza a menudo en los indicadores de divergencia) y no afecta a la activación de la alerta, es decir, la alerta seguirá activándose correctamente en la barra de las 16:30. Sin embargo, puede parecer que debería activarse antes (es decir, en la barra de las 14:30). Sin embargo, puede parecer que debería activarse antes (es decir, en la barra de las 14:30).