ReqOrderAction
报单操作请求
错误响应: OnRspOrderAction,OnErrRtnOrderAction
正确响应:OnRtnOrder
1.函数原型
virtual int ReqOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, int nRequestID) = 0;
2.参数
pInputOrderAction:输入报单操作
| 字段类型 | 字段名称 | 含义 | 值 |
|---|---|---|---|
| TThostFtdcBrokerIDType | BrokerID | 经纪公司代码 | 必填*2 |
| TThostFtdcInvestorIDType | InvestorID | 投资者代码 | 无 |
| TThostFtdcOrderRefType | OrderRef | 报单引用 | 必填*1 |
| TThostFtdcExchangeIDType | ExchangeID | 交易所代码 | 必填*2 |
| TThostFtdcOrderSysIDType | OrderSysID | 报单编号 | 必填*2 |
| TThostFtdcUserIDType | UserID | 用户代码 | 无 |
| TThostFtdcInstrumentIDType | InstrumentID | 合约代码 | 必填*1 |
| TThostFtdcOrderActionRefType | OrderActionRef | 报单操作引用 | 无 |
| TThostFtdcRequestIDType | RequestID | 请求编号 | 无 |
| TThostFtdcFrontIDType | FrontID | 前置编号 | 必填*1 |
| TThostFtdcSessionIDType | SessionID | 会话编号 | 必填*1 |
| TThostFtdcVolumeType | VolumeChange | 数量变化 | 无 |
| TThostFtdcActionFlagType | ActionFlag | 操作标志 | 必填 |
| TThostFtdcPriceType | LimitPrice | 价格 | 无 |
| TThostFtdcInvestUnitIDType | InvestUnitID | 投资单元代码 | 无 |
| TThostFtdcIPAddressType | IPAddress | IP地址 | 无 |
| TThostFtdcMacAddressType | MacAddress | Mac地址 | 无 |
必填*1、必填*2:两组选一组必填,能对应要撤的报单。
OrderRef:对应要撤销的那笔报单的报单引用
FrontID: 对应要撤销的那笔报单的前置编号
SessionID: 对应要撤销的那笔报单的会话编号
ExchangeID: 对应要撤销的那笔报单的交易所ID
OrderSysID: 对应要撤销的那笔报单的报单编号
ActionFlag:只支持删除,不支持修改。
nRequestID:请求ID,对应响应里的nRequestID,无递增规则,由用户自行维护。
3.返回
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数。
4.调用示例
//第一种方法,使用OrderSysID撤单(推荐使用)
OrderAction()
{
CThostFtdcInputOrderActionField OrderField;
memset(&OrderField, 0, sizeof(OrderField));
strcpy(OrderField.BrokerID, "8888");
strcpy(OrderField.ExchangeID, "SSE");
strcpy(OrderField.OrderSysID, "1057630"); //对应要撤报单的OrderSysID
OrderField.ActionFlag = THOST_FTDC_AF_Delete;
m_pUserApi->ReqOrderAction(&OrderField, nRequestID++);
}
//第二种方法,使用FrontID+SessionID+OrderRef撤单
{
CThostFtdcInputOrderActionField OrderField;
memset(&OrderField, 0, sizeof(OrderField));
OrderField.ActionFlag = THOST_FTDC_AF_Delete;
strcpy(OrderField.InstrumentID, "10002733");
strcpy(OrderField.OrderRef, "9");//对应要撤报单的OrderRef
OrderField.FrontID = 5;//对应要撤报单的FrontID
OrderField.SessionID = 1599602710;//对应要撤报单的SessionID
m_pUserApi->ReqOrderAction(&OrderField, nRequestID++);
}
5.FAQ
无