TradingView Pine Script:仅在当前K线绘制收盘价上方的线(解决重复画线)
解决TradingView Pine Script中仅显示当前K线收盘价上方线条的问题
你的核心问题是每次新K线生成时都会创建新线条,旧线条未被清理导致堆积。要实现仅保留当前K线收盘价上方的线条,需要通过持久化变量存储线条对象,并在每次绘制新线条前删除旧线条。
修改后的完整代码
//@version=5 indicator("Close+Constant", overlay=true) spread = 0.005 // 根据你的经纪商调整差值 // 声明持久化线条变量,避免每次bar重置 var line myLine = na if barstate.islast // 删除已存在的旧线条 if not na(myLine) line.delete(myLine) // 创建新线条并赋值给变量 myLine := line.new(bar_index[10], close + spread, bar_index, close + spread, width = 2, color = color.blue, extend = extend.both)
关键逻辑说明
var line myLine = na:使用var关键字声明线条变量,确保它在脚本运行期间保持持久化,不会随每根K线重新初始化。if not na(myLine) line.delete(myLine):在创建新线条前,检查是否存在旧线条,若存在则删除,避免线条堆积。myLine := line.new(...):将新创建的线条对象赋值给持久化变量,方便后续更新时引用删除。
这样修改后,图表上只会显示针对当前最后一根K线绘制的线条,不会再出现旧线条堆积的问题。
内容的提问来源于stack exchange,提问作者CiaranWelsh
相关产品推荐
相关产品推荐

