Pine Script矩形右侧修改失效求助:如何实现定时更新?
Pine Script v5矩形更新失效问题解决
问题原因
原代码中box box = na会在每一根K线重新计算时将变量重置为na,只有00:00的K线会给box赋值,后续K线(包括01:00的K线)中box的值都是na,调用box.set_right自然无法生效。
修复代码
//@version=5 indicator("rectangle", overlay=false) // 用var声明,保留变量值不随K线重置 var box box = na var int startindex = 0 startindex := (hour == 0 and minute == 0) ? bar_index : startindex[1] if (hour == 0 and minute == 0) box := box.new(startindex, 2, bar_index, 4, bgcolor=color.new(color.green, 95), border_width=2, border_color = color.black, border_style=line.style_solid, text = "the rectangle", text_color = color.white, text_size = size.normal) if (hour == 1 and minute == 0) // 先判断box不为na再执行修改,避免报错 if not na(box) box.set_right(box, bar_index)
关键修改说明
- 用
var声明box和startindex变量:var关键字会让变量在脚本初始化时只赋值一次,后续K线计算时保留之前的值,不会被重置。 - 增加
not na(box)判断:防止在box未初始化时调用box.set_right产生错误,让代码更健壮。
内容的提问来源于stack exchange,提问作者Mohsen Farghadani
相关产品推荐
相关产品推荐

