但需要在一个单元加载多个合约,并分别在data0,data1上发单时,data0.a_sendorder是正常的,但data1.a_sendorder不正常,显示不存在的价格和委托数量为零。
myposition
data1sellprice
data1buyprice
这两个要么全局变量/要么临时变量/要么普通变量加上Data[X]前缀
否则,都是用的Data0的值
要么无效值,要么是0,甚至被污染过的其他残留数据
所以你会发现,Data0发单是正确的,Data1发单价格和数量都是0
那么你的代码是怎么写的呢
else If(myposition<0)
{//If(data0.a_buyposition>0)data0.A_SendOrder(enum_sell,enum_exit,data0.a_buyposition,data0sellprice);
//If(data0.a_sellposition>0)data0.A_SendOrder(enum_buy,enum_exit,data0.a_sellposition,data0buyprice);
If(data1.a_buyposition>0)data1.A_SendOrder(enum_sell,enum_exit,data1.a_buyposition,data1sellprice);
If(data1.a_sellposition<Abs(myposition))data1.A_SendOrder(enum_sell,enum_entry,abs(myposition)-data1.a_sellposition,data1sellprice);
else If(data1.a_sellposition>Abs(myposition))data1.A_SendOrder(enum_buy,enum_exit,data1.a_sellposition-abs(myposition),data1buyprice);
}
同样的代码在旗舰版正常运行快一年了
你A函数也没填品种代码,下的什么合约呢?连续合约?
消息中心截图有吗?
你这个代码看上去就很不稳定
data0,data1上的数据都是某个主力月份合约,myposition是读取本地数据库的数据计算得来,没有问题。为什么说不稳定?关键是在旗舰版上没问题,另外,只要把data0,data1的位置对调就能正常发单。
发了单,但发的是委托量为0的单,用commentary看a_buyposition,a_sllpositioa_buyposition,a_sellposition,myposition,都正常显示,也就是说委托量不应该是0
委托量肯定不能填0