资源仍然是Pine Script 3的重担,所以我想我正在混淆一些东西:
我尝试创建一个平均每日范围指标,该指标基本上是无论当前图表的时间范围如何,都需要输入“ D”的ATR。我的代码在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()
的论点,我不确定为什么其他任何东西都被称为“未声明”。
我的完整代码是:
//@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)
这些“未声明的标识符”是什么?为了使我得到相同的结果,我必须在Pine Script 4中做些什么改变?
谢谢。
答案 0 :(得分:0)
我解决了它,但仍然不知道什么是“未声明的标识符”。我认为这只是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)
答案 1 :(得分: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
也是如此。