譬如
data0.gettick(my_tick);
data0.gettick(my_tick2,1);
if(data1.c[1]>data1.c[1] and data0.my_tick.bidask1.askp>data0.my_tick2.bidask1.askp)
{
data0.A_sendorderex(...........);
}
问题:发单会重复发单,重复次数跟订阅的调表个数一致,但是我开仓都加了data0了。这是什么原因,有何解决办法,谢谢老师
你得限定只有data0这个品种驱动onbar运行的时候才执行data0的sendorder
通过onbar的参数indexs数组来确认
indexs数组里存放的是本次驱动的图层序号。
换句话说,indexs里必须要有图层序号0,你才执行data0.sendorder
不太能理解。 加载策略时候默认了tick为第一图层,那么tick不就是data0了,我在OnInit里就只需要订阅data1的图层就可以了,这样操作可以吗
不可以
建议在好好理解一下onbar事件域的驱动机制
我大致理解为,在条件语句没有被限定在data0情况下,即使在sendorder前加data0.也没用,这样理解可以吗
前缀只是指定一些数据的归属,并不能控制运不运行
明白了,谢谢老师