为什么此代码 运行 不会出现在 Pine Script 4 中? "Undeclared identifier"

Why won't this code run in Pine Script 4? "Undeclared identifier"

资源仍然很重 Pine Script 3,所以我想我在混淆一些东西:

我尝试创建一个平均每日范围指标,它基本上是一个 ATR,无论当前图表的时间范围如何,它都采用 "D" 输入。我的代码在 Pine Script 3 上运行良好,但 Pine Script 4 抛出以下错误:

line 4: Undeclared identifier `resolution`;
line 6: Undeclared identifier `tickerid`;
line 6: Undeclared identifier `dRange`;
line 8: Undeclared identifier `adRange`

文档表明 resolution 仍然是一个 input() 论点,我不确定为什么还有其他东西被称为 "undeclared"。

我的完整代码是:

//@version=4
study(title="Average Daily Range", shorttitle="ADR", overlay=false)

dRange = input(defval="D", title="Daily Range", type=resolution)

adRange = security(tickerid, dRange, rma(tr, 5))

plot(adRange, title = "ADR", color=#000000, transp=0)

这些 "Undeclared identifiers" 是什么?我必须在 Pine Script 4 中做哪些不同的事情才能得到相同的结果?

谢谢。

我解决了,但还是不知道"undeclared identifiers"是什么。我假设这只是 Pine 的说法,dRange 违反了其变量 resolution 的新规则,并且 adRange 正在为未使用的 tickerid 制造问题,它有在 PineScript 4 中被 syminfo.tickerid 取代。

//@version=4
study(title="Average Daily Range", shorttitle="ADR", overlay=false)

adRange = security(syminfo.tickerid, "D", rma(tr, 5))

plot(adRange, title="ADR", color=#000000, transp=0)

v4 RefMan 在这里:https://www.tradingview.com/pine-script-reference/v4/

v4 UserMan 在这里:https://www.tradingview.com/pine-script-docs/en/v4/index.html

由于编译器在使用 input() 的第 4 行返回错误,因此在 refman 中查找该函数是有意义的,您会在其中找到 type= 参数的正确参数现在想要 input.resolution。由于错误无法初始化变量 dRange,编译器也会对该变量给出错误。 adRange 也是如此,您已修复。