You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询PineScript中line.new线条是否存在及获取其颜色?

判断line.new是否已绘制及获取颜色的方案

最可靠的判断方式

在Pine Script里,未初始化的line对象会返回na,**直接检查line变量是否等于na**是判断线条是否已绘制的最优方案,比查询坐标或价格更准确,也更简洁。

示例代码

// 声明持久化的line变量,避免每次bar重新初始化
var line targetLine = na

// 触发绘制线条的条件(示例:收盘价突破50日均线)
if close > ta.sma(close, 50) and na(targetLine)
    targetLine := line.new(bar_index[1], ta.sma(close, 50)[1], bar_index, ta.sma(close, 50), color=color.blue)

// 检查线条状态并获取颜色
if not na(targetLine)
    currentColor = line.get_color(targetLine)
    // 示例:用label展示颜色信息
    label.new(bar_index, low, "线条颜色: " + str.tostring(currentColor), color=currentColor, textcolor=color.white)

你提到的其他方法的局限性

  • 通过line.get_price判断:不可靠。未绘制的线条调用该方法会返回na,但如果已绘制的线条恰好对应价格为na(比如数据缺失场景),会导致误判。
  • 通过get_x1/get_y1等坐标方法判断:同样存在风险。未绘制的线条返回na,但已绘制的线条也可能因特殊情况出现坐标na,不如直接检查line变量本身准确。

额外提示

如果需要管理多条线条,可以用数组存储line对象,遍历数组时同样通过na检查判断线条是否有效。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:27:00