Pinescript v4绘制月度开盘价出现右移一个月异常问题
Pine Script v4月度开盘价偏移问题修复方案
问题根本原因
- Pine Script v4对
security()函数的默认周期合并规则做了隐性调整,旧版本中tickerid参数默认使用无前瞻对齐逻辑,v4的syminfo.tickerid参数默认启用隐式前瞻对齐,导致更高时间周期的开盘价被自动锚定到下一个周期的首个K线位置,最终出现月度价格偏移一个月的问题。 - 未显式指定
security()的合并参数时,函数会默认将未闭合的高周期数据偏移到下一个周期起始位绘制,也是偏移问题的诱因之一。 - 旧版本中将
syminfo.tickerid替换为废弃兼容参数tickerid可正常运行,本质是兼容参数保留了旧版的无前瞻合并逻辑。
修复代码
直接在security()函数中显式声明无前瞻的合并规则即可,无需使用废弃参数,修复后代码如下:
//@version=4 m_open = security(syminfo.tickerid, "M", open, barmerge.gaps_off, barmerge.lookahead_off) plot(m_open, title="Month Open", style=plot.style_circles, linewidth=1, color=color.black)
新增参数说明
barmerge.gaps_off:保证月度开盘价在当月所有K线上连续输出,不会仅在月初第一个K线显示后出现数值缺口barmerge.lookahead_off:强制禁用前瞻对齐逻辑,月度开盘价会严格绑定对应月份的首个K线位置,彻底解决跨月偏移问题
内容的提问来源于stack exchange,提问作者BePractical
相关产品推荐
相关产品推荐

