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

TradingView前一日OHLC绘制延迟及lookahead参数启用必要性问询

TradingView security函数数据延迟问题解决方案

问题根因

你遇到的1天延迟是security()函数默认的非前瞻合并逻辑和你代码的参数写法共同导致的:
security()默认lookahead = barmerge.lookahead_off时,只会返回已经完全闭合的时间级别的K线数据,你原代码中把偏移offset_写在security入参的val_[offset_]位置,相当于请求日线级别"偏移对应周期前的已闭合K线数值",当日开盘价需要等当日日线完全收盘才会被返回,自然出现1天延迟。

lookahead_on启用必要性判断

  • 若指标仅用于静态图表绘制、历史行情复盘:可以启用lookahead_on,能够直接拿到你需要的实时数据,不会影响使用体验。
  • 若指标需要用于策略回测、实盘交易信号触发:绝对禁止启用lookahead_on,该参数会引入未来数据,导致回测结果严重失真,完全不具备参考性。

无需启用lookahead_on的修正方案

调整getSeriesData函数的偏移写法,将偏移参数从security内部移到外部,即可在默认非前瞻模式下拿到正确的实时数据,没有延迟:

//@version=4
study("SeriesData","SRD",overlay=true)
linew = input(title="Line Width",type = input.integer, defval=2,minval=1,maxval=5)

getSeriesData(val_,tf_,offset_)=>
    // 偏移移到security函数外部,取返回值的偏移,不引入未来数据
    VAL = security(syminfo.tickerid, tf_, val_)[offset_]

d_op  = getSeriesData(open,'D',0)          //current day open
pd_hi = getSeriesData(high,'D',1)           // Previous Day High
pd_lo = getSeriesData(low,'D',1)           // Previous Day Low
pd_cl = getSeriesData(close,'D',1)           //Previous Day Close


plot(d_op,color=color.silver,style=plot.style_circles,linewidth=linew, display = display.all)
plot(pd_hi,color=color.red,style=plot.style_circles,linewidth=linew, display = display.all)
plot(pd_lo,color=color.lime,style=plot.style_circles,linewidth=linew, display = display.all)

修正后原理:security优先返回当前时间级别下已经确定的日线数值,当日开盘价在当日第一根K线生成时就已经固定,不需要等日线闭合即可正常返回,不会出现延迟,也没有未来函数风险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:15:04