Pine Script计算价格与SMA偏差时sma函数找不到报错求助
报错原因
触发该报错是因为Pine Script v5版本对内置函数做了命名空间拆分:
- 所有技术分析类函数统一归属到
ta命名空间下,v4版本中全局可用的sma()函数,在v5中不存在全局调用入口 - 未显式声明脚本版本时,TradingView默认按最新v5规则解析代码,调用全局
sma()就会触发找不到函数的错误
解决方案
有两种修复方式可二选一:
方式1:适配v5版本(推荐)
在脚本开头声明v5版本,同时将sma()改为ta.sma()调用,修复后完整代码如下:
//@version=5 indicator("Divergence") myMA = ta.sma(close,50) Divergence = (myMA - close) plot(Divergence, color=color.blue)
方式2:沿用v4版本规则
不需要修改原有逻辑,只需在代码第一行声明使用v4版本即可:
//@version=4 indicator("Divergence") myMA = sma(close,50) Divergence = (myMA-close) plot(Divergence, color=color.blue)
内容的提问来源于stack exchange,提问作者Paul Smith
相关产品推荐
相关产品推荐

