ArrayPushBack(myArray,10)为什么不能运行在Range中
这个数组末尾追加元素的函数 为什么不能运行在Range中 是软件的BUG吗 请有关人员验证 。
这个数组末尾追加元素的函数 为什么不能运行在Range中 是软件的BUG吗 请有关人员验证 。
谢谢老师指点 我明白了
结果为什么不是66 而是0呢
运行结果是
Params //此处添加参数 Array<String>mysymbol(["a2109.DCE","ag2112.SHFE","al2109.SHFE","AP110.CZCE","au2112.SHFE"]); String yy("1d"); Vars //此处添加变量 Global Integer i; Global Integer j; Array<Numeric> myArray; Defs //此处添加公式函数 Numeric calcAvg(Numeric a,Numeric b) { return (a+b)/2; } Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作 OnInit() { for j= 0 to GetArraySize (mysymbol) { SubscribeBar(mysymbol[j],yy,20200101); } } //在所有的数据源准备完成后调用,应用在数据源的设置等操作 OnReady() { } //在新bar的第一次执行之前调用一次,参数为新bar的图层数组 OnBarOpen(ArrayRef<Integer> indexs) { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { Range[i=0 : DataCount-1] { ArrayPushBack(myArray,66); } PlotNumeric("收盘价",myArray[2]); }
回复:你的myarray不是全局类型 那么不同图层的myarray实际上是不同的容器,也就是说data0.myarray和data1.myarray其实是两个变量。 你在range里对不同图层的myarray进行插入,实际上就是在对不同的myarray进行插入。 你可以在插入语句后面加上commentary语句输出myarray的内容元素。 另外,range实际上就是省略了循环变量和前缀的for,建议先用for循环写明白了多图层管理,再用range 更多细节可以关注视频区启航类课程
有没有一个在图层上能使用的容器的代码 叫我参考一下
现在的容器都是区分图层的 内部参数跟随外部函数的图层 ,你确定不是图层问题?如果认为是bug请提交能复现bug的相关完整代码