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

如何在图表上绘制矩形/框?Pine脚本填充线间区域求助

解决Pine Script中填充两条自定义线之间区域的问题

嘿,我明白你的困扰了——用line.new画了线之后,发现fill函数没法直接用在这些line对象上,label的方形样式又满足不了精确位置和透明度的需求。别担心,这里有两个靠谱的解决方案:

方案一:用plot替代line.new,配合fill函数填充

fill函数的设计是用来填充两个plot系列(比如plot或hline生成的对象)之间的区域,而不是line.new创建的单个线条对象。所以如果你的上下边界是可以用连续数值序列表示的(比如基于指标计算的动态边界),直接用plot来绘制边界,再用fill填充就很方便:

//@version=5
indicator("填充上下边界区域", overlay=true)

// 替换成你自己的上下边界计算逻辑
upper_bound = ta.sma(close, 20) + 2 * ta.stdev(close, 20)
lower_bound = ta.sma(close, 20) - 2 * ta.stdev(close, 20)

// 绘制上下边界线
upper_plot = plot(upper_bound, color=color.green)
lower_plot = plot(lower_bound, color=color.red)

// 填充两者之间的区域,transp参数控制透明度(0-100)
fill(upper_plot, lower_plot, color=color.new(color.blue, 70))

方案二:用box.new创建矩形填充区域(适配line.new的精确坐标)

如果你的线条是非连续的、特定区间的线段(比如只在某几个bar之间绘制的线),那box.new就是完美的选择——它支持精确设置左上角、右下角的坐标,还能自定义颜色和透明度,完全能匹配你用line.new定义的线段范围:

//@version=5
indicator("用Box填充自定义线段区域", overlay=true)

// 替换成你自己的线段坐标逻辑
// 上线的坐标
x1_upper = bar_index[10]
y1_upper = high[10] + 0.5
x2_upper = bar_index
y2_upper = high + 0.5

// 下线的坐标
x1_lower = bar_index[10]
y1_lower = low[10] - 0.5
x2_lower = bar_index
y2_lower = low - 0.5

// 创建两条自定义线段
upper_hline = line.new(x1_upper, y1_upper, x2_upper, y2_upper, extend=extend.none, color=color.green)
lower_hline = line.new(x1_lower, y1_lower, x2_lower, y2_lower, extend=extend.none, color=color.red)

// 创建填充用的矩形Box,匹配线段的坐标范围
box.new(
    left=math.min(x1_upper, x2_upper),  // 取线段x坐标的最小值作为左边界
    top=y1_upper,                       // 上线的y值作为上边界
    right=math.max(x1_upper, x2_upper), // 取线段x坐标的最大值作为右边界
    bottom=y1_lower,                    // 下线的y值作为下边界
    color=color.new(color.blue, 70),    // 设置填充颜色和透明度
    border_color=color.transparent      // 隐藏Box的边框,避免和原有线条冲突
)

小提示

  • 如果你的线段是动态生成的(比如根据条件创建),记得在合适的时机用box.delete清理旧的Box,避免图表上堆积过多对象。
  • color.new()函数可以轻松设置颜色透明度,第二个参数是0(完全不透明)到100(完全透明)的数值,和你之前用的transp参数逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:33:11