在TradingView中避免重复显示标签,可以通过添加一些逻辑来实现。以下是一个示例代码,演示了如何在同一价格水平上只显示一个标签:
//@version=4
study("Avoid Duplicate Labels", overlay=true)
var label l = na
var float prev_y = na
// 检查当前价格水平是否与上一个价格水平相同
same_level = close == close[1]
// 如果价格水平不同或上一个标签已经取消
if not same_level or na(l)
// 取消上一个标签
label.delete(l)
// 创建一个新的标签
l := label.new(bar_index, close, "Level", color=color.blue, textcolor=color.white, style=label.style_label_upperleft)
// 更新上一个价格水平
prev_y := close
// 如果价格水平相同且上一个标签仍然存在
if same_level and not na(l)
// 更新标签的y坐标
label.set_yloc(l, prev_y)
上述代码中,我们使用了label.new
函数来创建一个标签,并在label.delete
函数中删除了上一个标签。我们还使用label.set_yloc
函数来更新标签的y坐标,确保它始终在相同的价格水平上。
这样,无论在同一价格水平上有多少个标签,只会显示一个标签。
上一篇:避免在透视关系中重复使用ID
下一篇:避免在推断泛型类型时进行扩展