问题:
图层1和图层2(夜盘和早盘品种混合),日线级别下,如果一个数字插入到一个一维数组中,会插入2次,分钟级别是正确的,代码如下:
Params
Vars
Global Array<Numeric> arr; //数组1用来记录图层1的指标
Events
OnBar(ArrayRef<Integer> indexs)
{
Commentary("【监控1】图层1_arr="+TextArray(arr));
ArrayInsert(arr, 0, Data0.Close);//插入数组单个元素
Commentary("【监控2】图层1_arr="+TextArray(arr));
}
请帮忙找出日线级别出错根本原因,谢谢!
正常啊,因为两个品种,盘中行情肯定不可能同时到啊,会有一个先后顺序,那自然就会驱动两次onbar域,执行两次insert操作了
谢谢回复,那我如果日线级别,要只执行一次insert操作(达到和分钟级别一样的效果),该怎么写代码呢?
onbar驱动域里的indexes表示本次驱动由哪个图层引起。
可以根据这里的图层元素决定
比如AB品种,A品种驱动的时候插入,B品种驱动的时候忽略
一个if条件判断就能解决
我用图层限制在第一个图表,日线级别还是一样的insert两次,分钟级别就是正常的insert一次,请帮忙修改下代码,我就想不管是日线级别还是分钟级别,每个图层insert 一次,谢谢!
Params
Vars
Global Array<Numeric> arr;
Events
OnBar(ArrayRef<Integer> indexs)
{
Commentary("【监控1】图层1_arr="+TextArray(arr));
Range[0:0]
{
ArrayInsert(arr, 0, Data0.Close);//插入数组单个元素
}
Commentary("【监控2】图层1_arr="+TextArray(arr));
}
你看懂我上面说的什么意思了么?我说的不是用range,range是限制不了运行次数的