模拟环境下市价单有两个问题

Discussion in 'CTP' started by Forest, Feb 23, 2012.

  1. 问题一:在模拟环境下,下p1209的市价单时,OnRtnOrder()被调用两次,第一次是“报单已提交”,应该是CTP返回的,第二次是“已撤单 不支持的报单类型”,应该是交易所返回的。

    据说“模拟环境只有上期所的交易所系统,其他交易所的合约也是在上期所系统模拟”,那么其他交易所的市价单没有模拟出来吗?这样的话,模拟环境和实际环境的差距就大了。

    问题二:上述报单被交易所拒绝以后,查询持仓时,却查到了一笔0手的持仓,这个算是错误了吧?
     
  2. 提交报单的代码如下:

    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 ++);