TradingView Pine Script报错:无法从null转换脚本,求原因
TradingView Pine Script「Script could not be translated from: null」错误原因及修复
这个错误是因为脚本存在语法或逻辑问题,导致编译器无法正常解析。你的代码里有几个关键问题:
tickerid已被废弃:Pine Script v5不再支持tickerid变量,需替换为syminfo.tickerid,或者直接指定具体交易对的代码(比如"EURUSD")。study函数已被替换:v5版本中定义脚本的函数从study改为indicator,旧写法会导致解析错误。- 逻辑冗余无意义:你用同一个标的计算
pair1和pair2,最终价差永远为0,不符合脚本设计意图。
修复后的代码
//@version=5 indicator("Spread Percentage", overlay=true) // 定义两个不同的交易对,可根据需求修改 pair1_ticker = "EURUSD" pair2_ticker = "GBPUSD" // 获取两个交易对的日线收盘价 pair1 = request.security(pair1_ticker, "D", close, lookahead = barmerge.lookahead_on) pair2 = request.security(pair2_ticker, "D", close, lookahead = barmerge.lookahead_on) // 计算价差 spread = pair1 - pair2 // 计算百分比价差 spread_percent = (spread / pair1) * 100 // 绘制百分比价差 plot(spread_percent, color = color.red, linewidth = 2)
修复说明
- 用
indicator替代study,适配v5版本规范 - 替换废弃的
tickerid为具体交易对代码,确保pair1和pair2为不同标的 - 使用v5推荐的
request.security函数获取跨标的数据(旧security写法也兼容,但新写法更规范)
内容的提问来源于stack exchange,提问作者marcelo.delta
相关产品推荐
相关产品推荐

