ปัญหาการแจ้งเตือนอินดิเคเตอร์ที่ใช้ออฟเซ็ต

หากมีการสร้างการแจ้งเตือนบนอินดิเคเตอร์ที่ใช้พล็อตที่มีการออฟเซ็ต ดังนั้นเมื่อเปรียบเทียบสัญญาณเตือนกับสัญญาณบนชาร์ต อาจดูเหมือนว่าการแจ้งเตือนจะเกิดขึ้นแต่มีความล่าช้า

ลองดูตัวอย่าง: การแจ้งเตือนที่เกิดขึ้นเมื่อตรวจพบ pivotHigh 

pivotHigh คือค่าสูงสุดที่มีค่ามากกว่าจำนวนค่าที่สูงก่อนหน้าและค่าที่ตามมาจำนวนหนึ่ง (ในตัวอย่างนี้มีค่าสูงก่อนหน้าและค่าที่ตามมามากกว่าสองค่า)

คุณสามารถค้นหาแท่งที่ตรงตามเงื่อนไขข้างต้นได้โดยใช้ Pine Script นี้:

//@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)  
Java

เมื่อเพิ่มสคริปต์ลงในชาร์ต เราจะเห็นป้ายกำกับปรากฏบนแท่งตั้งแต่เวลา 16:30 น. แม้ว่า pivotHigh จะอยู่ถัดไป 2 แท่งทางด้านซ้ายก็ตาม

หากคุณสร้างการแจ้งเตือนเกี่ยวกับเงื่อนไขการแจ้งเตือนจากสคริปต์ การแจ้งเตือนจะทริกเกอร์บนแท่งบจากเวลา 16:30 น. ด้วย เนื่องจากตรงตามเงื่อนไขการตรวจจับ

เราสามารถเพิ่มออฟเซ็ตให้กับฟังก์ชัน plotshape เพื่อแสดงป้ายกำกับบนแท่ง pivotHigh 

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

การออฟเซ็ตดังกล่าวจำเป็นเพื่อความสะดวกเท่านั้น (มักใช้ในอินดิเคเตอร์ Divergence) และไม่ส่งผลกระทบต่อการแจ้งเตือน กล่าวคือ การแจ้งเตือนจะยังคงทริกเกอร์อย่างถูกต้องบนแท่งจากเวลา 16:30 น. อย่างไรก็ตาม อาจดูเหมือนว่าควรจะทริกเกอร์เร็วกว่านี้ (คือ บนแท่งจากเวลา 14:30 น.)