具有安全性的 Tradingview 自定义函数()

Tradingview custom function with security()

我正在查看 Pine 版本 3 迁移指南,其中有一个示例显示自定义函数并使用 security() 调用该函数。 https://www.tradingview.com/wiki/Pine_Version_3_Migration_Guide

现在我尝试更改我的自定义函数以便 return 两个值而不是一个值,但由于某种原因它不再起作用。错误在第 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)

这是一个已知问题。你不能 return 来自安全的元组。我们计划修复此错误。

现在您可以使用以下解决方法:

//@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)

更新

从 Pine v4 开始,您可以使用返回元组的函数 security():

//@version=4
study("", "", true)
f() => [open, high]
[o, h] = security(syminfo.tickerid, "D", f())
plot(o)
plot(h)