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

PineScript仅绘制当前K线对应最近5根K线箱体的实现问题

5-K线箱体优化方案

解决两个核心需求:仅保留最近5个箱体 + 透明填充

核心思路

  • 用数组存储箱体ID,超过5个就删除最早生成的箱体
  • 通过color.new()函数为箱体设置带透明度的填充色

修改后的完整代码

//@version=5
indicator("5-K线箱体", overlay=true)

// 初始化存储箱体ID的数组,var关键字确保仅初始化一次
var box[] boxList = array.new_box()

// 计算5根K线的真实最高/最低价(按需求替换原代码的收盘价取值)
topPrice = ta.highest(high, 5)
bottomPrice = ta.lowest(low, 5)

// 仅在最新K线生成箱体,避免重复创建
if barstate.islast
    // 创建带透明填充的箱体:第二个参数为透明度(0=完全不透明,100=完全透明)
    currentBox = box.new(bar_index - 5, topPrice, bar_index, bottomPrice,
                         border_color=color.green, border_width=1,
                         bgcolor=color.new(color.green, 80))
    // 将新箱体加入数组
    array.push(boxList, currentBox)
    // 数组长度超过5时,删除最早的箱体
    if array.size(boxList) > 5
        oldestBox = array.shift(boxList)
        box.delete(oldestBox)

关键细节说明

  • 箱体数量控制:var声明的数组只会在脚本启动时初始化一次,每次生成新箱体后检查数组长度,超过5就用array.shift()取出并删除第一个(最早的)箱体,实现仅保留最近5个箱体的效果
  • 透明填充调整:color.new(color.green, 80)中的80是透明度参数,可根据需求调整为0-100之间的数值,数值越大填充效果越透明
  • 价格取值修正:原代码用收盘价计算最高/最低价,按需求改为K线的真实最高high和最低low,若需求是基于收盘价计算,改回close即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:51