繁体   English   中英

Pine 脚本中的历史引用 arrays

[英]History referencing in Pine Script arrays

我一直在尝试使用最近在 PineScript 4 中引入的数组功能,但它接缝表明我没有意识到它的局限性,或者可能实现仍然有问题。 以下非常简单的脚本说明了我面临的问题:

//@version=4

study("TEST")

// A is basically the same as bar_index+1, and it is plotted as expected
A=0
A:=nz(A[1])+1

// the same thing implemented using arrays nevertheless doesn't work as expected
B=array.new_float(1,0)
array.set(B,0,nz(array.get(B,0)[1])+1)

plot(A,color=color.red)
plot(array.get(B,0),color=color.yellow)

根据我的理解, AB数组的第一个元素都必须生成相同的图形。 尽管如此, B的 plot 只是在所有柱上给出 1。 问题肯定与历史引用运算符 [] 的使用有关。 有谁知道如何克服这种问题?

注意:为了深入了解问题的本质,我已使此脚本尽可能简单。 我正在处理的脚本要复杂得多,它以各种方式在 for 循环中使用 arrays,包括刚刚说明的那个(即历史引用操作),所以使用简单变量代替数组根本不会'不适合我。

  1. 不能使用 Pine 的 [ ] 历史引用运算符直接引用数组 ID 或元素的过去实例 ( https://www.tradingview.com/pine-script-docs/en/v4/essential/Arrays.html?highlight=array#历史参考
  2. 您的示例的固定版本:
//@version=4

study("TEST")

// A is basically the same as bar_index+1, and it is plotted as expected
A=0
A:=nz(A[1])+1

// the same thing implemented using arrays nevertheless doesn't work as expected
var B=array.new_float(1,0)
array.set(B,0,nz(array.get(B,0))+1)

plot(A,color=color.red)
plot(array.get(B,0),color=color.yellow)

我完全同意你的看法。 我也有数组历史引用的问题,无法通过替换 [] 来解决。 我在没有数组的情况下重写了我的脚本,它运行得很好。 唉,那是太长的脚本,但工作正常。 我认为 Pine 工作人员应该修改 arrays 代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM