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

TradingView初始平衡指标绘图修正:解决低周期显示与回溯问题

问题解决:Initial Balance Pivots指标低周期异常与回溯周期设置问题

核心问题

  1. 低周期(15分钟、30分钟等)图表中IB区间及扩展位显示异常,数值频繁变动
  2. 定义的lookback回溯周期参数未生效,所有历史IB线均显示导致图表杂乱

修改后的完整代码

//@version=5
indicator(title="Initial Balance Pivots", shorttitle="IB-Pivots", overlay=true)

// 回溯周期设置:仅显示最近N个交易日的IB及扩展位
lookback = input.int(title="Initial Balance Lookback Period", defval=3, minval=1)

// --------------------------
// 修复:正确计算当日初始平衡(IB)区间
// --------------------------
// 创建常规交易时段的日度ticker
daily_ticker = ticker.new(syminfo.prefix, syminfo.ticker, session=session.regular)
// 提取当日开盘后第一个小时的高低点作为IB区间(可根据交易时段调整时间范围)
ib_high = request.security(daily_ticker, "60", ta.valuewhen(time("60") == session.regular + "0900-1000", high, 0), gaps=barmerge.gaps_off)
ib_low = request.security(daily_ticker, "60", ta.valuewhen(time("60") == session.regular + "0900-1000", low, 0), gaps=barmerge.gaps_off)

// 计算IB区间跨度及扩展位
ib_span = ib_high - ib_low
ib_median = ib_low + ib_span / 2

// 下方支撑扩展位
sa = ib_low - (0.5 * ib_span)
sb = ib_low - ib_span
sc = ib_low - (1.5 * ib_span)
sd = ib_low - (2 * ib_span)
se = ib_low - (3 * ib_span)
sf = ib_low - (4 * ib_span)
sg = ib_low - (4.5 * ib_span)

// 上方阻力扩展位
ra = ib_high + (0.5 * ib_span)
rb = ib_high + ib_span
rc = ib_high + (1.5 * ib_span)
rd = ib_high + (2 * ib_span)
re = ib_high + (3 * ib_span)
rf = ib_high + (4 * ib_span)
rg = ib_high + (4.5 * ib_span)

// --------------------------
// 修复:回溯周期控制逻辑
// --------------------------
// 跟踪当前交易日的起始K线索引
current_day_start = ta.barssince(time("D") != time("D")[1])
// 计算回溯周期的起始交易日索引
lookback_start = ta.barssince(time("D") != time("D")[lookback])
// 仅显示当前及回溯范围内的交易日线条
show_lines = current_day_start >= 0 and current_day_start <= lookback_start

// --------------------------
// 绘制IB区间及扩展位
// --------------------------
// IB高低位
plot(show_lines ? ib_high : na, title="IB High", color=color.fuchsia, style=plot.style_line, linewidth=2)
plot(show_lines ? ib_low : na, title="IB Low", color=color.fuchsia, style=plot.style_line, linewidth=2)

// IB中位线
plot(show_lines ? ib_median : na, title="IB Median", color=color.black, style=plot.style_line, linewidth=1)

// 上方阻力扩展位
plot(show_lines ? ra : na, title="IB High Extension 1", color=color.red, linewidth=2)
plot(show_lines ? rb : na, title="IB High Extension 2", color=color.red, linewidth=2)
plot(show_lines ? rc : na, title="IB High Extension 3", color=color.red, linewidth=2)
plot(show_lines ? rd : na, title="IB High Extension 4", color=color.red, linewidth=2)
plot(show_lines ? re : na, title="IB High Extension 5", color=color.red, linewidth=2)
plot(show_lines ? rf : na, title="IB High Extension 6", color=color.red, linewidth=2)
plot(show_lines ? rg : na, title="IB High Extension 7", color=color.red, linewidth=2)

// 下方支撑扩展位
plot(show_lines ? sa : na, title="IB Low Extension 1", color=color.green, linewidth=2)
plot(show_lines ? sb : na, title="IB Low Extension 2", color=color.green, linewidth=2)
plot(show_lines ? sc : na, title="IB Low Extension 3", color=color.green, linewidth=2)
plot(show_lines ? sd : na, title="IB Low Extension 4", color=color.green, linewidth=2)
plot(show_lines ? se : na, title="IB Low Extension 5", color=color.green, linewidth=2)
plot(show_lines ? sf : na, title="IB Low Extension 6", color=color.green, linewidth=2)
plot(show_lines ? sg : na, title="IB Low Extension 7", color=color.green, linewidth=2)

// --------------------------
// 修复:前一交易日高低点绘制
// --------------------------
res = input(title="Resolution", defval="D")
yesterday_high = request.security(daily_ticker, res, high[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
yesterday_low = request.security(daily_ticker, res, low[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)

// 仅在回溯范围内显示昨日高低点
plot(show_lines ? yesterday_high : na, color=color.red, style=plot.style_cross, linewidth=2)
plot(show_lines ? yesterday_low : na, color=color.green, style=plot.style_cross, linewidth=2)

关键修复说明

  1. 低周期异常修复:

    • 改用日度ticker结合小时级时间过滤,精准锁定当日开盘后第一个小时的高低点作为IB区间,确保在任何周期下IB值稳定,不会随低周期K线波动。
    • 关闭lookahead参数,避免引入未来数据,保证指标信号的客观性。
  2. 回溯周期生效:

    • 通过交易日索引跟踪,仅绘制当前交易日及最近lookback个交易日的IB线条,彻底解决图表杂乱问题。
  3. 代码优化:

    • 统一ticker定义,减少重复逻辑;简化新日判断逻辑,提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:18:26