Pine Script V4转V5提示hma函数已定义错误求助
报错原因
Pine Script V5已经内置了原生hma(Hull Moving Average)函数,你当前V4脚本中自定义了同名的hma函数,版本转换时会触发命名冲突,才会返回函数重复定义的报错。
解决步骤
- 第一步:重命名你自定义的
hma函数,例如改成custom_hma,修改后的函数代码如下:
custom_hma(src, len) => wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
- 第二步:同步修改脚本中所有调用自定义
hma的位置,比如thma函数里的所有hma调用都替换为custom_hma,修改后代码如下:
thma(src, len) => ma1 = custom_hma(src, len) ma2 = custom_hma(ma1, len) ma3 = custom_hma(ma2, len) 3 * (ma1 - ma2) + ma3
- 第三步:完成上述修改后再进行版本转换,同时注意适配V5的其他语法规则:
- 开头版本声明从
//@version=4改成//@version=5 - 原
study函数替换为V5的indicator函数 - 所有
input调用按类型替换为input.int、input.bool、input.string等V5专用的输入声明函数
- 开头版本声明从
内容的提问来源于stack exchange,提问作者Adam B
相关产品推荐
相关产品推荐

