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

使用barmerge.lookahead_on时request.security的重绘问题求助

在Pine Script中保留lookahead_on同时避免高时间框架收盘价重绘的解决方案

首先明确问题根源:
当启用lookahead = barmerge.lookahead_on时,request.security会提前获取高时间框架下一根bar的实时数据,这本身就容易引入重绘——因为未确认的高时间bar价格会随行情波动,导致指标数值不断变化。你之前尝试用当前低时间框架的barstate.isrealtime/barstate.isconfirmed判断索引,逻辑上的问题在于:低时间框架的bar状态和高时间框架的bar状态并不同步,用前者判断后者的索引会导致取到未确认的未来数据,最终引发重绘。

解决方案:基于高时间框架的确认状态存储并返回数据

核心思路是:用var变量持久化存储高时间框架已确认的收盘价,仅当高时间框架自身的bar确认时,才更新这个存储值。这样即使开启lookahead_on,历史数据始终是已确认的固定值,不会重绘;实时行情中也只会在高时间bar确认后更新数值。

代码实现(完全无重绘)

// 无重绘的高时间框架收盘价获取函数
f_secureSecurity(_symbol, _res, _src) =>
    // 用var变量持久化存储已确认的高时间收盘价
    var float confirmed_htf_close = na
    // 同时获取高时间框架的当前收盘价和它的bar确认状态
    [htf_current_close, htf_bar_confirmed] = request.security(_symbol, _res, [_src, barstate.isconfirmed], lookahead = barmerge.lookahead_on)
    
    // 仅当高时间bar确认时,更新存储的收盘价
    if htf_bar_confirmed
        confirmed_htf_close := htf_current_close
    
    // 返回已确认的收盘价(完全无重绘)
    confirmed_htf_close

// 调用函数获取60分钟收盘价
Htfclose = f_secureSecurity(syminfo.tickerid, '60', close)

可选:实时预览高时间bar价格但不重绘历史

如果你希望在实时行情中看到高时间bar的当前实时价格(仅实时动态变化,历史数据固定无重绘),可以修改返回逻辑:

f_secureSecurity(_symbol, _res, _src) =>
    var float confirmed_htf_close = na
    [htf_current_close, htf_bar_confirmed] = request.security(_symbol, _res, [_src, barstate.isconfirmed], lookahead = barmerge.lookahead_on)
    
    if htf_bar_confirmed
        confirmed_htf_close := htf_current_close
    
    // 实时返回当前价格,历史返回已确认值
    barstate.isrealtime ? htf_current_close : confirmed_htf_close

原有代码重绘的原因

你之前的逻辑依赖当前低时间框架的bar状态来选择_src的索引,但低时间bar的"实时/确认"状态和高时间bar的状态完全无关:

  • 比如低时间bar还在运行(barstate.isrealtime=true),但高时间bar可能已经确认,此时取_src[1]会拿到上一个高时间bar的收盘价,而非当前已确认的最新值;
  • 反之,低时间bar已确认,但高时间bar还在运行,取_src[0]会拿到未确认的未来数据,导致后续高时间bar价格变化时,历史上的指标数值被修改,引发重绘。

只有基于**高时间框架自身的barstate.isconfirmed**来判断是否更新数据,才能精准控制重绘问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:53:15