Problemas com alertas em indicadores que usam offsets
Se um alerta é criado em um indicador que usa plotagens com offsets, então quando comparamos o sinal do alerta com o sinal do gráfico, pode parecer que o alerta foi acionado com atraso.
Vamos olhar esse exemplo: um alerta acionado quando pivotHigh é detectado.
pivotHigh é uma máxima cujo valor é maior que um certo números de valores de máxima anteriores e posteriores. (Há maios exemplos que dois valores de máxima posteriores e subsequentes nesse exemplo.)
Você pode encontrar a barra onde a condição acima é satisfeita usando esse script 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)//@version=6indicator("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) //@version=6indicator("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)
JavaQuando adicionado o script ao gráfico, nós vemos o rótulo exibido na barra de 16:30, embora pivotHigh esteja localizado 2 barras a esquerda.

Se você criar uma condição de alerta em alertcondition a partir de um script, ele também irá acionar na barra de 1:30 uma vez que a condição de detecção de pivotHigh é satisfeita nele.
Nós podemos adicionar um offset para a função plotshape para exibir o rótulo na barra pivotHigh.
plotshape(phDetected?high[2]:na, style=shape.labeldown, location=location.absolute, text="pivotHigh", textcolor=color.white, color=color.green, offset=-2)
Java
Tal offset é necessário apenas por conveniência (ele é frequentemente usado em indicadores divergentes) e não afetam o alerta acionado, exemplo, o alerta irá ainda assim ser acionado corretamente na barra de 16:30. Entretanto, pode parecer que ele deveria ser acionado mais cedo (ou seja, na barra de 14:30).