Problema con gli alert sugli indicatori che utilizzano gli offset

Se viene creato un alert su un indicatore che utilizza tracciati con offset, quando si confronta il segnale di alert con il segnale sul grafico, può sembrare che l'alert venga attivato con un ritardo.

Vediamo un esempio: un alert attivato quando viene rilevato il valore pivotHigh.

Il pivotHigh è un massimo il cui valore è superiore a un certo numero di massimi precedenti e successivi. (In questo esempio ci sono più di due valori massimi precedenti e successivi).

È possibile trovare una barra in cui la condizione di cui sopra è soddisfatta utilizzando questo 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)  

Quando si aggiunge lo script al grafico, si vede l'etichetta visualizzata sulla barra delle 16:30, anche se il pivotHigh si trova 2 barre a sinistra.

Se si crea un alert su alertcondition da uno script, si attiverà anche sulla barra delle 16:30 poiché la condizione di rilevamento pivotHigh è soddisfatta su di essa.

È possibile aggiungere un offset alla funzione plotshape per visualizzare l'etichetta sulla barra pivotHigh.

plotshape(phDetected?
high[2]:na, style=shape.labeldown, location=location.absolute, text="pivotHigh", textcolor=color.white,  color=color.green, offset=-2)  

Questo offset è necessario solo per comodità (è spesso utilizzato negli indicatori di divergenza) e non influisce sull'attivazione dell'alert, vale a dire che l'alert scatterà comunque correttamente sulla barra delle 16.30. Tuttavia, potrebbe sembrare che sarebbe dovuto attivarsi prima (cioè sulla barra delle 14:30).