我正在尝试将 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)
答案 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,它会为您处理一切。