TradingView Pinescript работает с оператором: = - PullRequest
0 голосов
/ 20 октября 2018

Я хочу понять, как: = и sum [1] работает.Эта сумма возвращает мне 6093. Но сумма равна 0, также сумма [1] = 0, я прав?Как мне это вернуть 6093?Я искал трейдинг вьювью, но не понял.Я хочу изменить этот код на другой язык, например, javascript, c #

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

1 Ответ

0 голосов
/ 20 октября 2018

[] в pine-script называется Оператор ссылки на историю .При этом можно ссылаться на исторические значения любой переменной типа ряда (значения, которые переменная имела на предыдущих барах).Так, например, 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 баров , а sum начинается с 1 и продолжается до 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

...