Pine script Pine脚本编码-如何引用现有变量

Pine script Pine脚本编码-如何引用现有变量,pine-script,Pine Script,我仍在学习pine,但我希望有人能帮助我完成我的工作:我已经有了一个变量,它可以返回两个不同的值:1或-1。我想创建一个新变量,它只在第一个变量为1时生成信号。我该怎么做呢。这就是我所拥有的: fD = 0 sD = 0 fD := hlc3 > fastMA ? 1 : hlc3 < fastMA ? -1 : nz(fDirection[1], 1) sD := hlc3 > slowMA ? 1 : hlc3 < slowMA ? -1 : nz(sDirect

我仍在学习pine,但我希望有人能帮助我完成我的工作:我已经有了一个变量,它可以返回两个不同的值:1或-1。我想创建一个新变量,它只在第一个变量为1时生成信号。我该怎么做呢。这就是我所拥有的:

fD = 0
sD = 0


fD := hlc3 > fastMA ? 1 : hlc3 < fastMA ? -1 : nz(fDirection[1], 1)
sD := hlc3 > slowMA ? 1 : hlc3 < slowMA ? -1 : nz(sDirection[1], 1)```

I want to create a new variable ```fDPOS``` when ```fD``` is equal to 1; essentially ignoring the -1 value. How can I do that in pine?

fD=0
sD=0
fD:=hlc3>fastMA?1:hlc3slowMA?1:hlc3
您可以按如下方式重写脚本:

fD = sign(hlc3 - fastMA)
sD = sign(hlc3 - slowMA)
sign
函数在参数大于0时返回1,小于0时返回-1

然后,关于您的问题,我了解到您希望在
fD=1
后生成一个新值,这可以通过以下方法完成:

fDPOS = change(fD) > 0 ? 1 : 0

谢谢@alexgrover这么说
fDPOS=change(fD)>0?1:0
当fD等于大于0时,您只接受值/设置fDPOS=1?有关更改函数@alexgrover的问题:符号函数似乎为fD返回1或-1,我希望fDPOS值等于fD值(当fD等于1)。更改函数不取当前值和以前值之间的差值吗?所以,如果我使用change,我以前的值是1,当前值是1,那么设置fDPOS=1-1=0不是吗?我理解了“一次”,我的错误,所以你可以使用
fDPOS=max(fD,0)
,这里fDPOS=1时等于1,否则等于0。谢谢@alexgrover!非常感谢!