我想要计算"features“数组中每个元素的周期之间的百分比变化(简单地使用该数组作为要报告的一组金融时间序列数据)。然而,脚本现在的工作方式似乎是要计算数组中每个元素之间的百分比变化,而不是数组中每个元素的百分比变化。
我不认为我在引用数组元素的方式上做错了什么,但我感觉有某种“幕后”的概念是关于TV如何处理变量的,这是导致这个问题的原因。
//@version=4
study("My Script")
pct_change(source, period) =>
now = source
then = source[period]
missing_now = na(now)
missing_then = na(then)
if not missing_now and not missing_then
(now - then) / abs(then)
else
missing_now ? 0 : 1
evaluate(sources) =>
s = array.size(sources)
bar_changes = array.new_float()
for i = 0 to 99999
if i < s
source = array.get(sources, i)
array.push(bar_changes, pct_change(source, 1))
continue
else
break
bar_changes
features = array.new_float()
array.push(features, open)
array.push(features, high)
array.push(features, close)
bar_changes = evaluate(features)
plot(pct_change(open, 1))
plot(array.get(bar_changes, 0))
plot(pct_change(high, 1), color=color.aqua)
plot(array.get(bar_changes, 1), color=color.aqua)
plot(pct_change(close, 1), color=color.red)
plot(array.get(bar_changes, 2), color=color.red)
发布于 2020-11-02 02:03:14
我想您遇到过与我同样的问题,它与使用历史引用运算符[]来设置数组元素值有关。我已经将其归结为一个非常简单的脚本来说明问题here。
本质上,您在代码中所做的是将数组元素传递给pct_change()函数,该函数使用[]运算符,然后在array.push()中使用返回的结果来设置数组元素的值。
当我尝试在我的脚本中尝试刚引入的数组时,我遇到了奇怪的结果,所以我开始挖掘,以便找到问题的根源。它归结到上面的链接中引用的脚本。到目前为止,我认为Pine脚本在涉及数组时仍然有一些bug,所以我们只需要等待它们被修复。
https://stackoverflow.com/questions/64157385
复制相似问题