官方自带的样例代码中演示了 开仓,撤单,对撤单后面跟的OnRtnOrder有点疑问。 发送了撤单,什么情况下返回的回报是正在交易的? 这样不是多次撤单了吗? if (IsTradingOrder(pOrder)) ReqOrderAction(pOrder); ///报单通知 void CTraderSpi::OnRtnOrder(CThostFtdcOrderField* pOrder) { if (IsMyOrder(pOrder)) { if (IsTradingOrder(pOrder)) ReqOrderAction(pOrder); else if (pOrder->OrderStatus == THOST_FTDC_OST_Canceled) cout << "--->>> 撤单成功" << endl; } }
OnRtnOrder,是返回定单的状态的函数。比方说当前白糖7400,你下7380的买单一张,显然不能成交,这时使用ReqOrderAction可以成功撤单。撤单成功后,OnRtnOrder再次被调用,此时定单状态是THOST_FTDC_OST_Canceled,显示撤单已成功。