如何在Pine Script图表状态栏的数值前添加前缀
解决Pine Script v5中为ATR百分比指标状态栏数值添加前缀的问题
问题原因
你之前尝试在plot()的title参数里拼接动态指标值,但title是脚本初始化时就固定的静态属性,不会随K线更新动态数值,所以没法实现状态栏显示带前缀的实时数值。
解决方案
我们可以用var label创建一个动态更新的标签,把它放在图表底部的状态栏位置,实时更新指标数值并加上自定义前缀。
修改后的完整代码
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Bao1984 //@version=5 indicator("ATR百分比指标", "D", format=format.percent) lengthofAtr = input.int(5, "ATR周期", minval=2, group = "周期设置", inline = "01") lengthofWMA = input.int(10, "ATR加权WMA周期", minval=2, group = "周期设置", inline = "02") noholiday = input.bool(true, "启用节假日周期", group = "自定义设置", inline = "01") atrInPercentage = ta.atr(lengthofAtr)/(hlcc4*0.01) atrweightedWMA = (ta.wma(ta.atr(lengthofAtr), lengthofWMA))/(ohlc4*0.01) // 绘制指标线 plot(atrInPercentage, title = "ATR百分比", color=color.teal, linewidth=1, trackprice=true) plot(atrweightedWMA, title = "ATR加权WMA", color=color.gray, linewidth=1 ) // 创建动态更新的状态栏标签 var label statusLabel = label.new(bar_index, low, "", yloc=yloc.belowbar, style=label.style_none) // 实时更新标签文本,添加自定义前缀 label.set_text(statusLabel, str.format("当前ATR百分比: {0:.2f}% | 加权WMA: {1:.2f}%", atrInPercentage*100, atrweightedWMA*100)) // 让标签跟随最新K线 label.set_x(statusLabel, bar_index)
代码说明
- 用
var label初始化一个仅创建一次的标签,设置位置在K线下方(对应状态栏区域),隐藏边框和背景 - 用
str.format()格式化文本,添加自定义前缀,同时保留两位小数让数值更清晰 - 每次K线更新时,同步更新标签的文本和位置,确保显示最新的指标数值
内容的提问来源于stack exchange,提问作者Genshinn1999
相关产品推荐
相关产品推荐

