Vấn đề với các cảnh báo cho chỉ báo có độ lệch
Nếu cảnh báo được tạo trên một chỉ báo sử dụng các biểu đồ có độ lệch, thì khi so sánh tín hiệu cảnh báo với tín hiệu trên biểu đồ, có vẻ như cảnh báo được kích hoạt với độ trễ.
Hãy xem một ví dụ: cảnh báo được kích hoạt khi phát hiện ra pivotHigh.
pivotHigh là mức cao có giá trị lớn hơn một số giá trị cao trước đó và sau đó. (Có nhiều hơn hai giá trị cao trước đó và sau đó trong ví dụ này.)
Bạn có thể tìm thấy một thanh đáp ứng điều kiện trên bằng cách sử dụng tập lệnh Pine này:
//@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)
Khi thêm tập lệnh vào biểu đồ, chúng ta thấy nhãn được hiển thị trên thanh từ phút 16:30, mặc dù pivotHigh nằm cách 2 thanh về bên trái.

Nếu bạn tạo cảnh báo trên alertcondition từ một tập lệnh, cảnh báo đó cũng sẽ kích hoạt trên thanh từ 16:30 vì điều kiện phát hiện pivotHigh được đáp ứng trên đó.
Chúng ta có thể thêm một phần bù vào hàm plotshape để hiển thị nhãn trên thanh pivotHigh.
plotshape(phDetected?high[2]:na, style=shape.labeldown, location=location.absolute, text="pivotHigh", textcolor=color.white, color=color.green, offset=-2)

Việc bù như vậy giúp bạn thuận tiện (thường được sử dụng trong các chỉ báo phân kỳ), không ảnh hưởng đến việc kích hoạt cảnh báo, tức là cảnh báo vẫn sẽ kích hoạt chính xác trên thanh từ 16:30. Tuy nhiên, có vẻ như cảnh báo này sẽ kích hoạt sớm hơn (cụ thể là trên thanh từ 14:30).