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

Pine Script绘制Box时top/bottom参数失效,盒子上下拉满求助

问题原因与解决方法

你的问题核心是每根K线都会执行一次box.new(),创建大量重叠的Box,这些Box叠加后视觉上就会呈现出延伸到图表顶底的效果,并非top/bottom参数本身失效。

解决步骤:

  • 用var关键字声明Box变量,确保只初始化一次,避免重复创建
  • 明确指定top和bottom对应的是特定K线的高低值,而非每根K线实时的high/low

修正后的代码示例:

//@version=5
indicator("Fixed Box Example", overlay=true)

// 仅在脚本加载时创建一次Box,使用当前K线的高低作为顶底
var this_box = box.new(left = bar_index - 1, top = high, right = bar_index + 50, bottom = low, 
     border_color = na, border_width = 1, bgcolor = color.new(color.red, 70), extend = extend.none)

// 可选:如果需要在特定条件更新Box(比如最新K线),可以用if语句控制
if barstate.islast
    box.set_top(this_box, high)
    box.set_bottom(this_box, low)

额外说明:

  • bar_index + 50指向未来50根K线的位置,在实时行情中这些K线未生成时,Box右侧会暂时延伸到当前图表末端,但top/bottom会保持你设置的数值
  • 如果需要基于历史特定K线创建Box,要锁定对应的high/low值,比如结合ta.pivothigh()函数或指定索引的K线数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:02:06