Pine Script, серия [0] не является целым числом? - PullRequest
0 голосов
/ 26 февраля 2020

В чем причина сообщения об ошибке:

//@version=4
study("sample")
int dep=0

if close>open
        dep:=dep+1

cma=sma(close,dep[0])

plot(cma)

код ошибки:

line 11: Cannot call 'sma' with arguments (series[float], series[integer]); available overloads: sma(series[float], integer) => series[float];

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

Как говорится в сообщении об ошибке: вы пытаетесь передать series integer в функцию sma, тогда как функция sma принимает только integer Вы делаете серию dep, когда пытаетесь установить ее на другое значение. Таким образом, переменная dep имеет разное значение на каждом баре, что делает ее последовательной. Вы можете использовать Pine-версию sma для исправления сценария: https://www.tradingview.com/pine-script-reference/v4/#fun_sma

0 голосов
/ 02 марта 2020
//@version=4
study("sample", max_bars_back = 100)
var dep=1

if close>open
    dep:=dep+1

dep := min(dep, 100) // we needs some limit or must be some condition when dep := 0

pine_sma(x, y) =>
    sum = 0.0
    for i = 0 to y - 1
        sum := sum + x[i]
    sum / y

plot(dep)
plot(pine_sma(close, dep))
0 голосов
/ 27 февраля 2020
//@version=4
study("sample")
int dep=1

if close>open
    dep:=dep+1

//cma=sma(close,dep[0])                     //wrong

pine_sma(x, y) =>
    sum = 0.0
    for i = 0 to y - 1
        sum := sum + x[i] / y
    sum

//plot(pine_sma(close, 15))                 //correct

plot(dep)

plot(pine_sma(close, dep))                  //When dep type is int, its value is always 2.
                                            //Set dep type is var,Code run time error.

Моя проблема до сих пор не решена. Насколько я понимаю, ряд [целое число] должен получить int. Не так ли?

...