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

求助:如何在TradingView上绘制仅覆盖最后5根K线的单个箱体?

修复Pine Script箱体绘制问题

问题根源

原代码存在两个核心问题:

  • 未限制箱体创建时机:box.new在每根K线都会执行,导致生成大量无效箱体(前序K线中left为na),同时造成资源浪费。
  • 左边界计算错误:bar_index-5会让箱体覆盖6根K线,而非目标的5根。

修复后的代码

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

if barstate.islast
    // 计算最后5根K线的左边界(包含当前K线)
    left_bar = bar_index - 4
    // 获取这5根K线的最高、最低价
    top_price = ta.highest(5)
    bottom_price = ta.lowest(5)
    // 创建箱体,可自定义颜色和透明度
    box.new(left=left_bar, top=top_price, right=bar_index, bottom=bottom_price, color=color.new(color.blue, 90))

代码说明

  1. 限制创建时机:通过barstate.islast确保仅在最后一根K线执行箱体创建,避免重复生成。
  2. 修正左边界:bar_index - 4对应最后5根K线的起始索引(例如当前bar索引为10,则左边界为6,覆盖6-10共5根K线)。
  3. 匹配高低价范围:ta.highest(5)和ta.lowest(5)在最后一根K线时,恰好取到bar_index-4到bar_index区间的极值,和箱体范围完全对应。
  4. 视觉优化:添加color.new(color.blue, 90)设置半透明颜色,避免遮挡K线细节,可根据需求调整颜色和透明度参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:42:33