CTP下单涉及到预埋单、委托单的下单和撤单下单。
一、预埋单
1、预埋单(开盘前,或者非交易时段下单):
CThostFtdcParkedOrderField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[reqInfo.lAccIdx].InvestorID);
req.InstrumentID; //必填
ASSERT(m_nOrderRef);
sprintf(req.OrderRef, "%d", m_nOrderRef++); //必填
strcpy(req.UserID,m_UserID);
//价格类型:THOST_FTDC_OPT_AnyPrice
req.OrderPriceType = THOST_FTDC_OPT_LimitPrice; //必填
//买卖方向:THOST_FTDC_D_Buy,THOST_FTDC_D_Sell
req.Direction = THOST_FTDC_D_Sell;
//开平方向:THOST_FTDC_OF_Open,THOST_FTDC_OF_Close,THOST_FTDC_OF_CloseToday
req.CombOffsetFlag[0] = THOST_FTDC_OF_Open;
//套保标志:THOST_FTDC_HF_Speculation,THOST_FTDC_HF_Arbitrage,THOST_FTDC_HF_Hedge
req.CombHedgeFlag[0] = THOST_FTDC_HF_Hedge;
//价格
req.LimitPrice = ; //必填
//数量
req.VolumeTotalOriginal = ; //必填
req.TimeCondition = THOST_FTDC_TC_GFD; //有效期类型:当日有效
//req.GTDDate;
req.VolumeCondition = THOST_FTDC_VC_AV; //成交量类型:任何数量
req.MinVolume = 1; //最小成交量:1
req.ContingentCondition = THOST_FTDC_CC_Immediately; //触发条件:立即
//req.StopPrice = ; //止损价
req.ForceCloseReason = THOST_FTDC_FCC_NotForceClose; //强平原因:非强平
req.IsAutoSuspend = 0; //自动挂起标志:否
//req.BusinessUnit;
req.RequestID = nRequestID;
req.UserForceClose = 0; //用户强评标志:否
///预埋报单编号
req.ParkedOrderID;
///用户类型
req.UserType;
///预埋单状态
req.Status;
///错误代码
req.ErrorID;
///错误信息
req.ErrorMsg;
//req.IsSwapOrder;
ReqParkedOrderInsert(&req, nRequestID);
2、预埋撤单:
CThostFtdcParkedOrderActionField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[reqInfo.lAccIdx].InvestorID);
req.OrderActionRef = m_nOrderActionRef++;
req.OrderRef; //指向预埋单的OrderRef
req.RequestID = reqInfo.nRequestID;
req.FrontID = ; //指向预埋单的FrontID
req.SessionID = ; //指向预埋单的SessionID
req.ExchangeID; //指向预埋单的市场ID
req.OrderSysID; //指向预埋单的OrderSysID
req.ActionFlag = THOST_FTDC_AF_Delete;
//req.LimitPrice = ;
//req.VolumeChange = ;
strcpy(req.UserID, m_UserID);
req.InstrumentID; //指向预埋单的合约
//req.ParkedOrderActionID;
//req.UserType;
//req.Status;
//req.ErrorID;