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

TradingView Pine Script v5版ADR指标信号延迟1天问题求助

解决Pine Script v5 ADR指标延迟1天的问题

问题出在哪

  • 原代码用request.security获取日级别数据时,未配置barmerge.lookahead_on参数,无法实时同步当日的日数据更新,导致指标延迟一天。
  • 手动逐个提取10天历史波动范围的写法不仅冗余,还容易因索引逻辑混乱导致数据偏差。

修改后的完整代码

//@version=5
indicator(title="CDsGam", shorttitle="CDss", overlay=true)

// 实时获取日级别开盘、最高、最低价,开启前瞻合并同步当日数据
[daily_open, daily_high, daily_low] = request.security(syminfo.tickerid, 'D', [open, high, low], barmerge.lookahead_on)

// 构建10天波动范围数组:包含当日实时波动+过去9天历史波动
day_ranges = array.new_float(10)
// 先加入当天的实时波动范围
array.push(day_ranges, daily_high - daily_low)
// 循环添加过去9天的波动范围
for i = 1 to 9
    array.push(day_ranges, request.security(syminfo.tickerid, 'D', high[i] - low[i], barmerge.lookahead_on))

// 计算不同周期的ADR值
adr_10 = array.avg(day_ranges)
// 取数组前5个元素(当日+过去4天)计算ADR5
adr_5 = array.avg(array.slice(day_ranges, 0, 5))

// 计算ADR上下轨
adr_high_10 = daily_open + (adr_10 / 2)
adr_low_10 = daily_open - (adr_10 / 2)
adr_high_5 = daily_open + (adr_5 / 2)
adr_low_5 = daily_open - (adr_5 / 2)

// 绘图(修正原代码拼写错误:circlescles改为circles)
p1 = plot(adr_high_10, title="ADR High10", style=plot.style_circles, color=color.red, linewidth=2)
p2 = plot(adr_low_10, title="ADR LOW10", style=plot.style_circles, color=color.green, linewidth=2)
p3 = plot(adr_high_5, title="ADR High5", style=plot.style_circles, color=color.red, linewidth=2)
p4 = plot(adr_low_5, title="ADR LOW5", style=plot.style_circles, color=color.green, linewidth=2)

// 填充区间
fill(p1, p3, color=color.new(color.red, 90))
fill(p2, p4, color=color.new(color.green, 90))

核心修改点

  • 给request.security添加barmerge.lookahead_on参数,让指标能实时获取当日的日级别数据,彻底解决延迟问题。
  • 用数组整合10天波动范围,将当日实时波动纳入计算,ADR值能跟随当日行情实时更新。
  • 修正原代码中的拼写错误plot.style_circlescles,改为正确的plot.style_circles,避免绘图异常。
  • 改用数组函数简化ADR计算逻辑,代码更简洁且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:03:27