Tradingview Pinescript使用:=运算符

时间:2018-10-20 07:52:13

标签: algorithmic-trading tradingview-api pine-script

我想了解:=和sum [1]的工作原理。这个总和返回我6093。但是总和为0,总和[1] = 0,对吗?它如何返回6093?我搜索了tradingview Wiki,但我不理解。我想将此代码更改为另一种语言,例如javascript,c#

testfu(x,y)=>
    sum = 0.0
    sum:= 1+ nz(sum[1])
    sum

2 个答案:

答案 0 :(得分:1)

pine脚本中的

[]被称为 History Referencing Operator 。这样,就可以引用任何系列类型变量的历史值(该变量在前面的小节上具有的值)。因此,例如,close[1]返回昨天的收盘价-这也是一个序列。

因此,如果我们将您的代码分解(从第一栏开始):

testfu(x,y)=>
    sum = 0.0           // You set sum to 0.0
    sum:= 1+ nz(sum[1]) // You add 1 to whatever value sum had one bar ago
                        // which is 0, because it's the first bar (no previous value)
    sum                 // Your function returns 1 + 0 = 1 for the very first bar

现在,第二个栏:

testfu(x,y)=>
    sum = 0.0           // You set sum to 0.0
    sum:= 1+ nz(sum[1]) // You add 1 to whatever value sum had one bar ago
                        // which is 1, because it was set to 1 for the first bar
    sum                 // Your function now returns 1 + 1 = 2 for the second bar

以此类推。

看看下面的代码和图表。图表具有 62条形图,并且sum1开始,一直到62

//@version=3
study("My Script", overlay=false)

foo() =>
    sum = 0.0
    sum:= 1 + nz(sum[1])
    sum

plot(series=foo(), title="sum", color=red, linewidth=4)

enter image description here

答案 1 :(得分:0)

要回答部分有关:=运算符的问题:

它将新值分配给已设置的变量。您可以用任何其他语言将其替换为单个=