Пользовательская функция Tradingview с security()

Я просматриваю руководство по миграции Pine версии 3, и там есть пример, показывающий пользовательскую функцию и использующий security() для вызова этой функции. https://www.tradingview.com/wiki/Pine_Version_3_Migration_Guide

Теперь я попытался изменить свою пользовательскую функцию, чтобы она возвращала два значения вместо одного, но по какой-то причине это больше не работает. Ошибка находится в строке 10 ("[t,i] =...") и гласит: variableType.itemType не является функцией.

Мой код ниже, может ли кто-нибудь посоветовать, в чем проблема, пожалуйста?

//@version=3
study("My Script")

calcS() =>
    s = 0.0
    j = 0.0
    s := close + 1
    j := close + 2
    [s, j]
[t, i] = security(tickerid, '120', calcS())
plot(t, color=red, transp=0)
plot(i, color=blue, transp=0)

person VGh    schedule 30.12.2018    source источник


Ответы (1)


Это известная проблема. Вы не можете вернуть кортеж из безопасности. В наших планах исправить эту ошибку.

Теперь вы можете использовать следующий обходной путь:

//@version=3
study("My Script")

calcS() =>
    s = 0.0
    j = 0.0
    s := close + 1
    j := close + 2
    [s, j]

calcSs() =>
    [s, j] = calcS()
    s

calcSj() =>
    [s, j] = calcS()
    j

t = security(tickerid, '120', calcSs())
i = security(tickerid, '120', calcSj())
plot(t, color=red, transp=0)
plot(i, color=blue, transp=0)
person Ilya Muradyan    schedule 29.01.2019
comment
у меня похожая проблема plt_calc_val(V2, open_open,close_close) =› plot1 = V2 ? open_open ›close_close 4 или open_open == close_close ? 1 : 0 [plotc1] [plotc1] = plt_calc_val(plt_calc_val(V2, open_open,close_close)//testingthis = 0 testingthis = security(syminfo.tickerid, 45, plotc1, lookahead=barmerge.lookahead_off) Ошибка: нельзя использовать изменяемую переменную в качестве аргумента охранной функции.можете мне помочь - person Marx Babu; 27.03.2020