代码之家  ›  专栏  ›  技术社区  ›  Ved

Pinescript初始化

  •  1
  • Ved  · 技术社区  · 8 年前

    我试着理解下面的代码- https://www.tradingview.com/script/XzcIRUHv-JMA-RSX-Clone-LazyBear/

    我不知道像f90,f88这样的变量值是什么。它们是不是为其他事情预先设定的捷径?它们似乎是数组,因为它们与索引一起使用。例如。:

    f90_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   vitruvius    8 年前

    它们不是内置变量。

    pine-script 版本1和版本2允许您使用 [] nz() 即使变量尚未声明。因此,以下是有效的 版本1 :

    f90_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1
    

    如果你试一下这个 //@version=3 ,您将获得 错误。

    //@version=2
    study(title="JMA RSX Clone [LazyBear]", shorttitle="RSXC_LB", overlay=false)
    length=input(14)
    
    f90_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1
    f88 = (nz(f90_[1]) == 0.0) and (length-1 >= 5) ? length-1.0 : 5.0 
    plot(f90_, title="f90", color=orange, linewidth=4)
    plot(f88, title="f88", color=red, linewidth=4)
    

    让我们来看看发生了什么 f90_ f88 对于 .

    f90_u0=(新西兰(f90_0[1])==0.0)?1.0:(nz(f88[1])<=nz(f90[1])?新西兰(f88[1])+1:nz(f90[1])+1
    

    这里的条件是 (nz(f90_[1]) == 0.0) f90_[1] 基本上是询问前一个条的值,但这是第一个条(记得吗?),因此没有先前的值。所以,答案是 (不是数字)。

    新西兰() . 因为 新西兰() 替换

    所以第一小节的条件是真的,并且 1 .

    让我们看看 现在,再来一次 第一个酒吧 .

    f88 = (nz(f90_[1]) == 0.0) and (length-1 >= 5) ? length-1.0 : 5.0 
    

    这里的第一个条件是 . 这应该会回来 true ,因为同样的原因。

    (length-1 >= 5) . 对于默认输入(14),这也应该返回true。

    所以, f88型 将分配给14-1= 13

    我想你可以从现在开始继续。试着运行我提供的简短代码并查看图表。