【问题标题】:Need help converting a pine v2 script to pine v4需要帮助将 pine v2 脚本转换为 pine v4
【发布时间】:2021-06-22 13:10:34
【问题描述】:

我正在尝试将 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)

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    在 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,它会为您处理一切。

    【讨论】:

    • 这很简单,但我没有意识到这一点。非常感谢您指出问题。我能够将 pine 脚本转换为 v4。你最好的!
    猜你喜欢
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2023-02-10
    • 2021-12-14
    相关资源
    最近更新 更多