Pine Script中的数组是否有任何解决方法

时间:2019-03-23 00:55:46

标签: pine-script

PineScript中不提供数组。

有什么解决方法吗?有没有人开发过可以作为数组工作的代码?

我需要什么?我想计算每个趋势线或S / R级别的触摸次数。

4 个答案:

答案 0 :(得分:3)

最近他们添加了数组,您可以像这样使用它: reference

levels = array.new_int(size = 5, initial_value = na)
for i = 1 to 5
    array.push(levels, i)

无法直接访问数组元素,您必须像这样使用它

array.get(levels, 0)

答案 1 :(得分:0)

要实现计数器,您可以创建一个变量,然后使用历史记录引用操作符 []修改其值。

以下示例计算了典型rsi图中交叉/交叉发生的次数。

//@version=3
study("counter", overlay=false)

rsi_max = 70
rsi_min = 30

cnt_up = 0
cnt_dwn = 0

cnt_up := crossover(rsi(close, 14), rsi_max) ? nz(cnt_up[1]) + 1 : nz(cnt_up[1])
cnt_dwn := crossunder(rsi(close, 14), rsi_min) ? nz(cnt_dwn[1]) + 1 : nz(cnt_dwn[1])

plot(rsi(close, 14), color=orange, title='RSI')
plot(series=cnt_up, title="Up counter", color=green)
plot(series=cnt_dwn, title="Down counter", color=red)

band0 = hline(30)
band1 = hline(70)
fill(band1, band0, color=purple, transp=90)

在我的示例中,绿线是“ cnt_up”。此后,RSI线越过“超买”区域7次。

PassportJS documentation

在这里,您可以看到“ cnt_up”确实计数了7次。

enter image description here

不幸的是,这就是您所能做的。

答案 2 :(得分:0)

我没有看到在Pine Script中创建数组的官方方法。但是,您可以通过在每个新的小节/刻度/计算中向后走来模拟它,并查看过去有多少次触摸。我会选择其他语言(例如C#)和单独的数据供稿来完成这项工作。

答案 3 :(得分:0)

RicardoSantos创建一个伪数组函数。见他的Pseudo Array Example