【发布时间】:2022-01-17 15:21:14
【问题描述】:
在 pine 脚本中,我正在调用一个函数,该函数将前一个柱的值与增量相加:
myFunction(myVar1) =>
var int myVar2 = 0
myVar2 := myVar1 + nz(myVar2[1],1)
使用调用函数的循环添加增量值,并将结果存储在数组中:
myArray = array.new_int(0)
var int myVar1 = 1
myVar1 := 1
while myVar1 <= 3
array.push(myArray, myFunction(myVar1))
myVar1 += 1
第一个栏中的结果是预期的。由于没有前一个柱,前一个值被替换为 1 nz(myVar2[1],1)
plot(myArray.get(myArray, 0))
plot(myArray.get(myArray, 1))
plot(myArray.get(myArray, 2))
Result: [2, 3, 4]
但是在第二个小节:
Result: [5, 6, 7]
My expected result: [3, 5, 7]
因为它首先为 first bar 运行循环,然后在 second bar 中再次运行循环,它用于 myVar2[1] 在第一个栏中运行最后一个循环时保存的最后一个值4。
在使用循环时如何正确存储之前的bar值,从而达到预期的效果:
First bar: [2, 3, 4]
Second bar: [3, 5, 7]
Third bar: [4, 7, 10]
【问题讨论】:
-
在第二个栏上,
myVar2[1]将包含 4 每次通过您的循环,因为它查看它在前一个栏(第一个栏)上的值,即 4 而不是改变。所以你得到的[5,6,7]是合乎逻辑的。不确定您将如何实现预期结果,我也不了解该预期结果背后的逻辑。 -
为了简化上面的例子,而在 第二个栏 我怎样才能得到值 2、3 和4 从第一个小节?
标签: arrays function loops pine-script