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

如何在Pine Script中单独勾选/隐藏MA/EMA指标的标签?

实现Pine Script中MA/EMA标签的单独显示/隐藏控制

要实现标签的单独勾选/取消,核心是给每个标签添加独立的开关选项,通过输入参数控制标签的创建逻辑。修改后的代码如下:

//@version=5
indicator("EMA带独立标签开关", overlay=true)

// 为每个EMA线条和标签创建独立开关
show_ema8 = input.bool(true, title="显示8 EMA线条")
show_ema8_label = input.bool(true, title="显示8 EMA标签")

show_ema13 = input.bool(true, title="显示13 EMA线条")
show_ema13_label = input.bool(true, title="显示13 EMA标签")

// 计算EMA值
ema_8 = ta.ema(close, 8)
ema_13 = ta.ema(close, 13)

// 根据开关控制线条显示
plot(show_ema8 ? ema_8 : na, color=color.maroon, linewidth=2, title="8 EMA")
plot(show_ema13 ? ema_13 : na, color=color.lime, linewidth=2, title="13 EMA")

// 根据标签开关控制标签创建
if show_ema8_label
    ema8l = label.new(bar_index, ema_8, text="EMA8", xloc=xloc.bar_index, yloc=yloc.price, color=color.maroon, style=label.style_none, textcolor=color.gray)
    label.delete(ema8l[1])

if show_ema13_label
    ema13l = label.new(bar_index, ema_13, text="EMA13", xloc=xloc.bar_index, yloc=yloc.price, color=color.lime, style=label.style_none, textcolor=color.gray)
    label.delete(ema13l[1])

关键说明

  • 用input.bool()为每个线条和标签分别创建开关,这些开关会出现在指标设置面板中,支持单独勾选/取消
  • 线条显示通过plot()的三元表达式控制:开关开启时绘制对应EMA值,关闭时传入na(不绘制)
  • 标签创建通过if判断实现:只有对应标签开关开启时,才执行label.new()创建标签,关闭时跳过创建逻辑,自然隐藏标签
  • 保留原有的label.delete()逻辑,确保每次只显示最新一根K线上的标签,避免标签堆积

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:41:05