在全局数组中存储值



我似乎无法将值存储在全局数组中。代码示例如下:

strategy("Array Issue", overlay=true, margin_long=100, margin_short=100)
var vars = array.new_int(5)
var TRACK = 0
init() =>
if (barstate.isfirst)
array.set(vars, TRACK, 0)
run() =>
var track = array.get(vars, TRACK)
label.new(bar_index, high, str.tostring(track))
var newTrack = track+1
array.set(vars, TRACK, newTrack)
var storedTrack = array.get(vars, TRACK)
label.new(bar_index, low, str.tostring(storedTrack))
init()
run()

"track"标签总是0,并且"storedTrack"Label总是1。那么这个数组。Set正在工作,但不能传递到下次调用run()

我做错了什么?

var变量将只初始化一次,即使您在函数中拥有它。

那么,这里发生的是在第一个柱上track,newTrackstoredTrack被初始化。但在接下来的处决中,这些电话将不会再被调用。因此,它们的值永远不会被更新。

直接删除var关键字。

在这种情况下,只更新数组的第一个元素。这是因为TRACK总是0。因此,array.set(vars, TRACK, newTrack)将始终写入索引0。

相关内容

  • 没有找到相关文章

最新更新