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

Pine Script V5跨时间框架绘制每日ATR箱体问题求助

问题分析与解决方案

你的代码主要存在三个核心问题:

  • 参数类型不匹配:box.new的left/right需要的是K线索引值(bar_index),但你用request.security获取的time_tradingday是时间戳(毫秒数),两者完全不兼容,导致箱体位置错误。
  • 未来数据违规:time_tradingday[0]+1是当前交易日结束后的时间戳,在当日K线尚未走完时属于未来数据,触发了Pine Script的未来数据限制报错。
  • 跨周期逻辑错误:直接用当前周期的bar_index会随时间框架变化,因为不同周期的K线索引计数是独立的,日线的一根K线对应当前周期的多根K线,不能直接用单根bar_index定义箱体范围。

修正方案

要在任意时间框架下基于日线数据绘制ATR箱体,正确的做法是:

  1. 用request.security获取日线级别的开盘价、ATR值,以及当日在当前周期对应的起始和结束bar_index。
  2. 只在日线K线的范围内绘制箱体,避免未来数据。
  3. 管理箱体的创建和删除,避免重复绘制。

修正后的代码

//@version=5
indicator("日线ATR箱体", overlay=true)

// 1. 获取日线级别数据:开盘价、5周期ATR、当日的起始bar_index
daily_data = request.security(syminfo.tickerid, "D", [open, ta.atr(5), bar_index])
daily_open = daily_data[0]
daily_atr = daily_data[1]
daily_bar_idx = daily_data[2]

// 2. 确定当前周期中,日线K线的起始和结束边界
// 当日线K线切换时,记录当前周期的起始bar_index
var int current_daily_start = na
if ta.change(daily_bar_idx)
    current_daily_start := bar_index

// 日线箱体的右边界:如果是最后一根K线,用当前bar_index;否则用下一个日线切换前的bar_index
daily_box_right = barstate.islast ? bar_index : ta.valuewhen(ta.change(daily_bar_idx), bar_index, 0) - 1

// 3. 绘制ATR箱体:仅在日线起始点创建,避免重复绘制
var box atr_box = na
if not na(current_daily_start) and ta.change(daily_bar_idx)
    // 删除旧箱体
    if not na(atr_box)
        box.delete(atr_box)
    // 创建新箱体
    atr_box := box.new(
        left = current_daily_start,
        top = daily_open + daily_atr,
        right = daily_box_right,
        bottom = daily_open - daily_atr,
        border_color = color.yellow,
        border_width = 1,
        bgcolor = color.new(color.yellow, 90)
    )
// 更新最后一根K线的箱体右边界
else if barstate.islast and not na(atr_box)
    box.set_right(atr_box, bar_index)

代码解释

  • 跨周期数据获取:通过request.security一次性获取日线的开盘价、ATR和当日的bar_index,确保数据同步。
  • 边界确定:用ta.change(daily_bar_idx)检测日线K线的切换点,记录当前周期的起始bar_index;对于未走完的日线,用barstate.islast动态更新箱体右边界,避免未来数据。
  • 箱体管理:用var变量保存箱体对象,只在日线切换时创建新箱体并删除旧箱体,避免重复绘制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 04:40:04