这个数组末尾追加元素的函数 为什么不能运行在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的相关完整代码