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

如何在水平线与EMA线间填充颜色?仅填充EMA高于水平线的区域

解决Pine Script中指标线与水平线的条件填充问题

在Pine Script v5里,fill()函数要求两个参数必须是同类型对象——要么都是hline,要么都是plot。你之前的代码里hline是hline对象,ema是序列数据,跨类型无法实现条件填充的逻辑,所以需要调整实现方式:

解决方案代码

//@version=5
indicator("EMA高于水平线时填充")

ema = ta.ema(close, 20)
// 用plot绘制水平线,替代原生hline,保证和EMA的plot对象类型一致
plot_hline = plot(220, color=color.gray, title="220水平线")
plot_ema = plot(ema, color=color.blue, title="20周期EMA")

// 仅当EMA高于220时显示填充色,否则用na(透明)隐藏填充
fill(plot_hline, plot_ema, color=ema > 220 ? color.new(color.red, 80) : na)

关键说明

  • 用plot(220)生成水平线的plot对象,和EMA的plot对象类型匹配,满足fill()的参数要求
  • 通过三元运算符控制填充颜色:当ema > 220时显示半透明红色(color.new()用来调整透明度,数值0-100,越高越透明),否则传入na让填充区域透明
  • 可根据需求修改颜色、透明度、周期或水平线数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:01:00