收市前对未成交订单进行撤单

老师您们好。昨天发了一个贴,我是想在下午14:55至14点59之间对未成交的报单进行撤单,但是用A_GetOpenOrderCount取不到未成交订单列表数。我用双均线策略测试了一下,是绑定了模拟帐户在实时环境下测试的,PRINT出来的A_OpenOrderContractCount是0,不知道什么?想再请教一下,谢谢。以下是代码及控制台截图(因为是上午测试我时间改成了0.1110至0.1130之间):Params Numeric FastLength(5);// 短期指数平均线参数 Numeric SlowLength(20);// 长期指数平均线参数 Numeric pctime1(0.1110); Numeric pctime2(0.1130); Vars Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; bool pc_jing;Events OnReady() { SetBackBarMaxCount(1+Max(FastLength,SlowLength)); } OnBar(ArrayRef<Integer> indexs) { if(time>pctime1 and time<pctime2) { PlotBool("pc_jing",pc_jing); Integer j=0; Integer h=0; Print("A_OpenOrderContractCount:" + Text(A_GetOpenOrderCount)); Commentary("A_OpenOrderContractNo:" + Text(A_GetOpenOrderCount)); For j = 0 To A_GetOpenOrderCount - 1 { Print("A_OpenOrderContractCount:" + Text(A_GetOpenOrderCount)); Commentary("A_OpenOrderContractNo:" + Text(A_GetOpenOrderCount)); Integer value = A_OpenOrderContractNo(j); Print("A_OpenOrderContractNo:" + Text(value)); Commentary("A_OpenOrderContractNo:" + Text(value)); if(A_OrderStatus(value)==Enum_Declared) { A_DeleteOrderEx(value); } } } AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1); PlotNumeric("MA2",AvgValue2); If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]) { Buy(0,Open-20*MinMove * PriceScale); } If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) { SellShort(0,Open-20*MinMove * PriceScale); } }

就是有一个问题 你有挂单吗

回复:有的,在策略运行开始至指定查询未成交单并撤单的时间之间,我帐户透视里有确认有未成交挂单的

回复:上午的测试我用的是10秒BAR,但是TIME是以下的写法,只写到分钟没有写到秒级别,这有影响吗?Numeric pctime1(0.1110);Numeric pctime2(0.1130);

回复:我把你的代码略做了一点修改,做测试是能获取到的。

回复:但需要提醒您的是,即时您能查询到订单的状态,也能撤单,这样图表信号和A函数处理交织在一起的写法,也不是很推荐。

回复:原来是因为我加载的合约是主连后复权所以取不到,加载具体合约就能获取到了。所以,如果加载的是主连后复权,怎么样才能获取到未成交订单数量和未成交订单号呢?

回复:A_GetUnFillOrderIDs(RelativeSymbol,或者MainSymbol图表和A混是一个问题撤单重报部分也有问题,上个帖子说了