问题一:在模拟环境下,下p1209的市价单时,OnRtnOrder()被调用两次,第一次是“报单已提交”,应该是CTP返回的,第二次是“已撤单 不支持的报单类型”,应该是交易所返回的。 据说“模拟环境只有上期所的交易所系统,其他交易所的合约也是在上期所系统模拟”,那么其他交易所的市价单没有模拟出来吗?这样的话,模拟环境和实际环境的差距就大了。 问题二:上述报单被交易所拒绝以后,查询持仓时,却查到了一笔0手的持仓,这个算是错误了吧?
提交报单的代码如下: Code: CThostFtdcInputOrderField reqOrder; memset(&reqOrder, 0, sizeof(CThostFtdcInputOrderField)); strcpy_s(reqOrder.BrokerID, 11, CTP_BROKER_ID); strcpy_s(reqOrder.InvestorID, 13, CTP_USER_ID); strcpy_s(reqOrder.InstrumentID, 31, "p1209"); sprintf_s(reqOrder.OrderRef, 13, "%d", m_nOrderRef ++); reqOrder.Direction = THOST_FTDC_D_Buy; reqOrder.CombOffsetFlag[0] = THOST_FTDC_OF_Open; reqOrder.CombHedgeFlag[0] = THOST_FTDC_HF_Speculation; reqOrder.OrderPriceType = THOST_FTDC_OPT_AnyPrice; reqOrder.LimitPrice = 0; reqOrder.VolumeTotalOriginal = 1; reqOrder.TimeCondition = THOST_FTDC_TC_IOC; reqOrder.VolumeCondition = THOST_FTDC_VC_AV; reqOrder.ContingentCondition = THOST_FTDC_CC_Immediately; reqOrder.MinVolume = 1; reqOrder.ForceCloseReason = THOST_FTDC_FCC_NotForceClose; reqOrder.IsAutoSuspend = 0; reqOrder.UserForceClose = 0; ASSERT(m_pTraderApi != NULL); m_pTraderApi->ReqOrderInsert(&reqOrder, m_nRequestId ++);