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

Pine Script在5分钟周期图表绘制日线高低数据异常问题

问题原因与解决方案

你的问题出在request.security的默认行为上:它默认只会返回已经完全闭合的日线K线数据。在5分钟图的历史数据中,只要当前时间还没到日线收盘时刻,脚本就会显示前一日的日线OHLC;而实时数据中,它会动态获取当前正在形成的日线数据,这就导致了历史与实时显示的不一致,进而影响回测准确性。

修改后的代码

要让历史数据也能实时显示对应时段正在形成的日线OHLC,需要给request.security添加barmerge.lookahead_on参数,强制获取当前高时间框架(日线)的实时数据:

//@version=5
strategy(title="DailyChange", shorttitle="DailyChange", overlay=true, initial_capital=1000, calc_on_every_tick=true)

// 添加barmerge.lookahead_on参数,获取当前正在形成的日线数据
DailyClose = request.security(syminfo.tickerid, '1D', close, barmerge.lookahead_on)
DailyOpen = request.security(syminfo.tickerid, '1D', open, barmerge.lookahead_on)
DailyHigh = request.security(syminfo.tickerid, '1D', high, barmerge.lookahead_on) 
DailyLow = request.security(syminfo.tickerid, '1D', low, barmerge.lookahead_on) 

plot(series=DailyOpen, color=color.blue, linewidth=1)
plot(series=DailyClose, color=color.red, linewidth=1)
plot(series=DailyHigh, color=color.yellow, linewidth=1)
plot(series=DailyLow, color=color.gray, linewidth=1)

关键说明

  • barmerge.lookahead_on参数会让脚本在历史回测中模拟实时行情的视角,显示当时正在形成的日线数据,而非仅已闭合的前一日数据,这样历史与实时的显示逻辑就统一了。
  • 这个参数不属于“未来函数”,因为它获取的是对应历史时刻已经存在的实时数据,不会提前使用未来才会出现的信息,不会影响回测的真实性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:27:20