Security function获取intrabar数据异常 固定返回1问题咨询
Security函数intrabar计数异常排查指引
1. 补全security函数的合并参数声明
Pine Script近期版本调整了security()函数的默认bar合并规则,旧版本默认加载完整子时间帧bar序列的行为被修改为默认仅对齐当前主bar的首个子bar,这是你得到固定返回值1的最常见原因。
在原有调用中显式声明gap和lookahead参数即可恢复原有逻辑:
// v4版本写法 qtyIntrabars = security(syminfo.tickerid, "15", f_qtyIntrabars("D"), barmerge.gaps_on, barmerge.lookahead_off) // v5版本建议用request.security替代 qtyIntrabars = request.security(syminfo.tickerid, "15", f_qtyIntrabars("D"), gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
2. 校验交易时段配置
- 确认当前标的的交易时段未被修改为默认24小时模式,仍为印度股市标准6小时15分钟交易时段
- 检查图表「延长时段」开关状态,若之前仅统计常规交易时段,开关开启后会改变日bar内的15分钟bar总数
3. 替换计数逻辑避免var变量跨帧持久化问题
当前你使用var变量累加计数,依赖var变量在security子上下文的持久化能力,近期更新对跨时间帧的变量持久化做了限制,可改用ta.barssince实现相同逻辑,无需依赖持久化变量:
f_qtyIntrabars(_res) => ta.barssince(ta.change(time(_res))) + 1
4. 锁定脚本运行版本
如果你的脚本基于v4编写,当前在v5环境运行,security()函数的参数逻辑存在不兼容变更,可在脚本首行添加//@version=4锁定运行版本,验证是否为版本升级导致的异常。
内容的提问来源于stack exchange,提问作者Avita
相关产品推荐
相关产品推荐

