PineScript指标如何将买卖信号显示在主图、指标线显示在副图?
问题解答
不需要重复加载两次指标,Pine Script v4及以上版本支持通过绘图函数的display参数单独指定元素的展示位置,完全可以在同一个指标脚本里实现「指标线留在副窗口、买卖信号显示在主K线图」的需求。
具体实现方法
- 保留指标头部
indicator()声明里的原有设置即可,不需要修改全局的overlay参数(你原来的配置是overlay=false,保持这个值就能让没单独指定display的元素默认显示在副窗口)。 - 指标线的
plot语句保持原有写法,不需要额外加参数,会自动跟随全局配置显示在副窗口。 - 给买卖信号的绘图语句(包括
plotshape、plotchar、label.new等所有绘图类函数)添加display = display.price_scale参数,添加后对应的信号元素就会直接渲染到主K线的价格窗口,不会出现在副窗口。
示例代码片段
//@version=5 indicator("副窗指标+主图信号示例", overlay=false, shorttitle="双窗示例") // 替换为你自己的指标计算逻辑 maValue = ta.sma(close, 20) // 指标线:默认显示在副窗 plot(maValue, color=color.blue, title="指标线") // 替换为你自己的信号计算逻辑 buySignal = ta.crossover(close, maValue) sellSignal = ta.crossunder(close, maValue) // 信号:指定显示在主图价格窗口 plotshape(buySignal, title="买点", location=location.belowbar, color=color.green, style=shape.labelup, text="买", display = display.price_scale) plotshape(sellSignal, title="卖点", location=location.abovebar, color=color.red, style=shape.labeldown, text="卖", display = display.price_scale)
注意事项
- 如果你使用的是Pine Script v3及更早的旧版本,没有
display参数,才需要拆分两个指标分别设置overlay=true和overlay=false加载。 - 所有自定义绘图对象(标签、线段、形状等)都支持通过
display参数指定展示位置,逻辑和上面一致。
内容的提问来源于stack exchange,提问作者Adam B
相关产品推荐
相关产品推荐

