将函数从V1转换为V4脚本



我找到了一个脚本,我想使用并转换为V4,请参见下面给出的功能和错误。

lag(g, p) =>
L0 = (1 - g)*p+g*nz(L0[1])
L1 = -g*L0+nz(L0[1])+g*nz(L1[1])
L2 = -g*L1+nz(L1[1])+g*nz(L2[1])
L3 = -g*L2+nz(L2[1])+g*nz(L3[1])
f = (L0 + 2*L1 + 2*L2 + L3)/6
f
lmas = lag(Short, hl2)
lmal = lag(Long, hl2)

然后尝试编译到V4时的错误:

line 214: Undeclared identifier 'L0';
line 215: Undeclared identifier 'L1';
line 216: Undeclared identifier 'L2';
line 217: Undeclared identifier 'L3'

一切帮助将不胜感激。

在Pine v3中,不再可能使变量在赋值过程中引用自己。要将代码转换为v4,需要添加几行代码,首先创建L*变量,然后使用:=操作符重新分配它们的值:

lag(g, p) =>
float L0 = na
float L1 = na
float L2 = na
float L3 = na
L0 := (1 - g)*p+g*nz(L0[1])
L1 := -g*L0+nz(L0[1])+g*nz(L1[1])
L2 := -g*L1+nz(L1[1])+g*nz(L2[1])
L3 := -g*L2+nz(L2[1])+g*nz(L3[1])
f = (L0 + 2*L1 + 2*L2 + L3)/6
f
lmas = lag(Short, hl2)
lmal = lag(Long, hl2)

最新更新