ReqOrderInsert
报单录入请求,录入错误时对应响应OnRspOrderInsert、OnErrRtnOrderInsert,正确时对应回报OnRtnOrder、OnRtnTrade。
可以录入限价单、市价单、条件单等交易所支持的指令,撤单时使用ReqOrderAction。
不支持预埋单录入,预埋单请使用ReqParkedOrderInsert。
◇ 1.函数原型
virtual int ReqOrderInsert(CThostFtdcInputOrderField *pInputOrder, int nRequestID) = 0;
◇ 2.参数
pInputOrder:输入报单
struct CThostFtdcInputOrderField
{
///经纪公司代码
TThostFtdcBrokerIDType BrokerID;
///投资者代码
TThostFtdcInvestorIDType InvestorID;
///合约代码
TThostFtdcInstrumentIDType InstrumentID;
///报单引用
TThostFtdcOrderRefType OrderRef;
///用户代码
TThostFtdcUserIDType UserID;
///报单价格条件
TThostFtdcOrderPriceTypeType OrderPriceType;
///买卖方向
TThostFtdcDirectionType Direction;
///组合开平标志
TThostFtdcCombOffsetFlagType CombOffsetFlag;
///组合投机套保标志
TThostFtdcCombHedgeFlagType CombHedgeFlag;
///价格
TThostFtdcPriceType LimitPrice;
///数量
TThostFtdcVolumeType VolumeTotalOriginal;
///有效期类型
TThostFtdcTimeConditionType TimeCondition;
///GTD日期
TThostFtdcDateType GTDDate;
///成交量类型
TThostFtdcVolumeConditionType VolumeCondition;
///最小成交量
TThostFtdcVolumeType MinVolume;
///触发条件
TThostFtdcContingentConditionType ContingentCondition;
///止损价
TThostFtdcPriceType StopPrice;
///强平原因
TThostFtdcForceCloseReasonType ForceCloseReason;
///自动挂起标志
TThostFtdcBoolType IsAutoSuspend;
///业务单元
TThostFtdcBusinessUnitType BusinessUnit;
///请求编号
TThostFtdcRequestIDType RequestID;
///用户强评标志
TThostFtdcBoolType UserForceClose;
///互换单标志
TThostFtdcBoolType IsSwapOrder;
///交易所代码
TThostFtdcExchangeIDType ExchangeID;
///投资单元代码
TThostFtdcInvestUnitIDType InvestUnitID;
///资金账号
TThostFtdcAccountIDType AccountID;
///币种代码
TThostFtdcCurrencyIDType CurrencyID;
///交易编码
TThostFtdcClientIDType ClientID;
///IP地址
TThostFtdcIPAddressType IPAddress;
///Mac地址
TThostFtdcMacAddressType MacAddress;
};
OrderPriceType:确定输入的报单类型,比如限价单则填写THOST_FTDC_OPT_LimitPrice
、市价单则填写THOST_FTDC_OPT_AnyPrice
。
Direction:确定买卖方向
CombOffsetFlag:确定开平标志。注:上期所、能源交易所有平今指令,下平仓指令和平昨指令相同
CombHedgeFlag:确定投机套保标志 例:投机 THOST_FTDC_BHF_Speculation
TimeCondition:确定报单有效期类型 例:立即完成,否则撤销 THOST_FTDC_TC_IOC
VolumeCondition:确定成交量类型
ContingentCondition:确定触发条件
StopPrice:止损价,用于条件单的触发价格
ForceCloseReason:普通用户下单填写THOST_FTDC_FCC_NotForceClose
非强平
IsSwapOrder:互换单填1
CurrencyID:不填写默认为CNY
OrderRef:OrderRef是本地会话全局唯一编号,必须保持递增;可由用户维护,也可由系统自动填写。一定为数字。
IPAddress:手工填写本机IP地址,不自动获取。
MacAddress:手工填写本机Mac地址,不自动获取。
nRequestID:请求ID,对应响应里的nRequestID,无递增规则,由用户自行维护。
◇ 3.返回
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数。
◇ 4.调用示例
//限价单:
CThostFtdcInputOrderField ord = { 0 };
strcpy_s(ord.BrokerID, “0000”);
strcpy_s(ord.InvestorID, “00001”);
strcpy_s(ord.ExchangeID, “SHFE”);
strcpy_s(ord.InstrumentID, “ag1801”);
strcpy_s(ord.UserID, “00001”);
ord.OrderPriceType = THOST_FTDC_OPT_LimitPrice;//限价
ord.Direction = THOST_FTDC_D_Buy;//买
ord.CombOffsetFlag[0] = THOST_FTDC_OF_Open;//开
ord.CombHedgeFlag[0] = THOST_FTDC_HF_Speculation;//投机
ord.LimitPrice = 100;
ord.VolumeTotalOriginal = 1;
ord.TimeCondition = THOST_FTDC_TC_GFD;///当日有效
ord.VolumeCondition = THOST_FTDC_VC_AV;///任意数量
ord.MinVolume = 1;
ord.ContingentCondition = THOST_FTDC_CC_Immediately;
ord.StopPrice = 0;
ord.ForceCloseReason = THOST_FTDC_FCC_NotForceClose;
ord.IsAutoSuspend = 0;
m_pUserApi->ReqOrderInsert(&ord, nRequestID++);
◇ 5.FAQ
郑商所白糖期权的跨式和宽跨式套利指令,在ctp里如何实现?
和普通的限价单类似,不同的地方是在填写InstrumentID的时候 郑商所跨式组合(STD): STD SR703C5300&SR703P5300 郑商所宽跨式组合(STG): STG SR703C5300&SR703P5200 支持FAK和FOK |
“已撤单报单被拒绝CZCE:出错:不支持无限制期权组合订单”是什么原因?
郑商所的组合合约下单,TimeCondition应该用 |
如果下单后遇到报错“ctp:每秒报单数超过许可数”,是什么原因?
这是由于报单频率太快被前置流控所致。投资者可询问期货公司具体的流控设置;期货公司可以自行查看FLEX"程序化交易频繁报撤单管理"中的设置,以及Front的流控配置。注意:Front的流控会放到下一秒,不会报错;FLEX"程序化交易频繁报撤单管理"中的流控会报错。 |
“CTP:报单错误:不允许重复报单”,是什么原因?
这是表示OrderRef没有递增。 |
“CTP:无此权限”,是什么原因?
这可能InvestorID填写错误,或者该InvestorID不属于UserID的组织架构下。 |
“CTP:交易所未处理请求超过许可数”,是什么原因?
表示报单频率过快,超过了交易所的流控。 |
“CTP:交易所每秒发送请求数超过许可数”,是什么原因?
表示报单频率过快,超过了交易所的流控。 |