Pinescript初始化(Pinescript initialisation)

2019-09-29 09:23发布

我想了解以下pinescript指标代码- 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

Answer 1:

他们没有内置变量。

pine-script版本1和2让您访问与变量[] 结合 nz()即使该变量尚未宣布。 因此,下面是版本1版本2有效:

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_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1

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

现在,如果你把这个nz()它会返回 。 由于nz()代替NaN

所以条件将是第一条真实的, f90_将被分配到1.0。

让我们来看看f88现在,再次为第一个栏

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

这里的第一个条件是(nz(f90_[1]) == 0.0) 这应返回true的,因为上述同样的理由。

第二个条件是(length-1 >= 5) 这也应为默认输入(14)返回true。

那么, f88将被分配到14-1 = 13为第一条。

我想你可以从这里继续。 尝试运行我提供的短代码,看看图表。



文章来源: Pinescript initialisation
标签: pine-script