Почему эта функция возвращает целочисленный ряд? - PullRequest
0 голосов
/ 11 мая 2019

Почему эта функция возвращает целочисленный ряд?

вызывает ее как d = find_bar (time, 20)

, когда я использую наименьшее (close, d), я получаю ошибку, что dцелая серия.

find_bar(time_array,bar) =>
        counter = bar
        o = 0
        what = time_array[0]
        if bar == 0
            0
        else
            for i = 1 to 100000
                if time_array[i]-what[0]!=0
                    counter:= counter - 1
                    what:= time_array[i]
                    if counter == 0
                        o := i
                        break
            o[0]

1 Ответ

1 голос
/ 11 мая 2019

Здесь есть две вещи.

1) [] Оператор в pine-script возвращает значение типа серии. Итак, o[0] - это тип серии, следовательно, ваша функция возвращает значение типа серии.

2) := оператор присваивает новое значение переменной. Это делает его типом серии. Причина в том, что с каждым новым баром ваш скрипт будет перезапускаться, и := добавит новое значение в историю переменной (в вашем случае "o"). Таким образом, он становится типом серии (переменная, имеющая исторические значения). Вы можете получить доступ к этим историческим значениям с помощью оператора [].

...