如何将变量从pinescript的版本2转换为版本4?

时间:2020-02-22 07:38:20

标签: pine-script

我有一个用版本2编写的pinescript。我正在尝试将其转换为版本4。 在版本2中,我有类似下面的内容。我正在做的是声明两个变量persistent_bull和persistent_bear。

在脚本中完成一些工作之后,我用值初始化了此变量。 我检查是否印有牛市。如果已经打印出一头牛,我将变量persistent_bear = 0和persistent_bull = 0设为零。反之亦然。

在印刷标志时,我会检查并显示。

我在将其转换为版本4时遇到问题。请问有人可以为我正确转换吗?

persistent_bull = nz(persistent_bull[1],0) 
persistent_bear  = nz(persistent_bear[1],0) 


bull = ....certain condition ....
bear =  ....certain condition ....

if bull  
    persistent_bull := 1 
    persistent_bear := 0

if bear 
    persistent_bull := 0
    persistent_bear := 1

plotshape( bull and (persistent_bull[1] != 1 or bear), style=shape.labelup, location=location.belowbar, color=colorBuy, text="Buy", textcolor=#000000, transp=0)
plotshape( bear and (persistent_bear[1] != 1 or bull), style=shape.labeldown, color=colorSell, text="Sell", location=location.abovebar, textcolor =#ffffff, transp=0)

2 个答案:

答案 0 :(得分:1)

将前两行替换为:

var persistent_bull = 0
var persistent_bear = 0

答案 1 :(得分:1)

从pine版本3开始,必须在实际使用变量之前对其进行定义。因此,通过设置一些值来定义它们:

persistent_bull = 0
persistent_bear = 0

然后从上一个柱线值更改其值。请注意,此处使用:=运算符而不是=

persistent_bull := nz(persistent_bull[1],0) 
persistent_bear  := nz(persistent_bear[1],0) 

Luc的命题简短而简洁,但是需要对代码进行一些其他更改(例如,在if bull / if bear语句之前绘制形状)