如何从独立指标窗的指标在价格K线窗绘制线条 以MACD为例
实现方法及遗漏设置说明
核心遗漏设置项
你首先漏掉了指标声明中的overlay参数配置:
Pine Script默认所有指标会在独立副窗口渲染,只有在
indicator()初始化时显式设置overlay=true,指标内绘制的所有元素(包括line.new生成的线条)才会显示在主K线窗口。
完整实现步骤
- 第一步:声明指标时开启主图叠加属性
//@version=5 indicator("基于MACD的K线画线示例", overlay=true, shorttitle="MACD画线")
- 第二步:计算你需要的副图指标数值,此处以MACD为例
[macd_line, signal_line, hist_line] = ta.macd(close, 12, 26, 9)
- 第三步:定义画线触发条件,比如MACD金叉时在对应K线最高点画向右延伸的支撑线
draw_condition = ta.crossover(macd_line, signal_line)
- 第四步:调用
line.new执行绘制,此处给出常用参数示例
if draw_condition // 从当前K线的高点位置,向右绘制水平实线 line.new( x1 = bar_index, y1 = high, x2 = bar_index + 1, y2 = high, xloc = xloc.bar_index, extend = extend.right, color = color.new(color.green, 0), style = line.style_solid, width = 2 )
额外注意事项
- 如果你需要同时保留独立的MACD副窗口,只需额外新增一个不带
overlay参数的原生MACD指标挂载即可,两个指标的MACD计算结果完全一致,不会出现偏差 - 若需要避免重复画线,可通过
var变量存储历史线条ID,触发新条件时先删除旧线条再绘制新线条
内容的提问来源于stack exchange,提问作者WeekendHack
相关产品推荐
相关产品推荐

