需要帮助将 pine v2 脚本转换为 pine v4

时间:2021-06-22 13:10:34

标签: pine-script

我正在尝试将 pine 脚本从 v2 转换为 v4,但在理解我做错了什么并得到以下错误时遇到问题。任何帮助将不胜感激。谢谢..

第 10 行:未声明的标识符 vqi_t;
第 11 行:未声明的标识符 vqi_t;
第 12 行:未声明的标识符 vqi;
第 13 行:未声明的标识符 vqi_sum;
第 14 行:未声明的标识符 vqi_sum;
第 15 行:未声明的标识符 vqi_sum;
第 19 行:未声明的标识符 vqi_sum;

length_slow=input(9, title="Fast EMA Length")
length_fast=input(200, title="Slow EMA Length")

vqi_t=iff((tr != 0) and ((high - low) != 0) ,(((close-close[1])/tr)+((close-open)/(high-low)))*0.5,nz(vqi_t[1]))

vqi = abs(vqi_t) * ((close - close[1] + (close - open)) * 0.5)
vqi_sum=cum(vqi)
plot(vqi_sum, color=red, linewidth=2)
plot(sma(vqi_sum,length_slow), color=green, linewidth=2)
plot(sma(vqi_sum,length_fast),color=orange, linewidth=2)

1 个答案:

答案 0 :(得分:0)

在 Pine v2 中,在声明变量时,您可以引用该变量的过去值。这在 Pine v3 中被删除了。要解决此问题并生成可在 v3 中编译的代码,您需要先将此变量声明为 na,然后使用 := 运算符为其分配一个新值:

vqi_t = na
vqi_t := iff((tr != 0) and ((high - low) != 0) ,(((close-close[1])/tr)+((close-open)/(high-low)))*0.5,nz(vqi_t[1]))

注意:该代码仅对 Pine v3 有效;在 v4 中,您必须改用 float vqi_t = na。话虽如此,最好的做法是手动转换 v2 -> v3,然后使用内置的 Pine 转换器自动转换 v3 -> v4,它会为您处理一切。