跳转至

OnRtnOrder

报单通知,当执行ReqOrderInsert后并且报出后,收到返回则调用此接口,私有流回报。

详见报单回调规则

关于流控详见报单流控、查询流控和会话数控制

1. 函数原型

virtual void OnRtnOrder(CThostFtdcOrderField *pOrder) {};

2. 参数

pOrder:报单

struct CThostFtdcOrderField
{
    ///经纪公司代码
    TThostFtdcBrokerIDType  BrokerID;
    ///投资者代码
    TThostFtdcInvestorIDType    InvestorID;
    ///保留的无效字段
    TThostFtdcOldInstrumentIDType   reserve1;
    ///报单引用
    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;
    ///本地报单编号
    TThostFtdcOrderLocalIDType  OrderLocalID;
    ///交易所代码
    TThostFtdcExchangeIDType    ExchangeID;
    ///会员代码
    TThostFtdcParticipantIDType ParticipantID;
    ///客户代码
    TThostFtdcClientIDType  ClientID;
    ///保留的无效字段
    TThostFtdcOldExchangeInstIDType reserve2;
    ///交易所交易员代码
    TThostFtdcTraderIDType  TraderID;
    ///安装编号
    TThostFtdcInstallIDType InstallID;
    ///报单提交状态
    TThostFtdcOrderSubmitStatusType OrderSubmitStatus;
    ///报单提示序号
    TThostFtdcSequenceNoType    NotifySequence;
    ///交易日
    TThostFtdcDateType  TradingDay;
    ///结算编号
    TThostFtdcSettlementIDType  SettlementID;
    ///报单编号
    TThostFtdcOrderSysIDType    OrderSysID;
    ///报单来源
    TThostFtdcOrderSourceType   OrderSource;
    ///报单状态
    TThostFtdcOrderStatusType   OrderStatus;
    ///报单类型
    TThostFtdcOrderTypeType OrderType;
    ///今成交数量
    TThostFtdcVolumeType    VolumeTraded;
    ///剩余数量
    TThostFtdcVolumeType    VolumeTotal;
    ///报单日期
    TThostFtdcDateType  InsertDate;
    ///委托时间
    TThostFtdcTimeType  InsertTime;
    ///激活时间
    TThostFtdcTimeType  ActiveTime;
    ///挂起时间
    TThostFtdcTimeType  SuspendTime;
    ///最后修改时间
    TThostFtdcTimeType  UpdateTime;
    ///撤销时间
    TThostFtdcTimeType  CancelTime;
    ///最后修改交易所交易员代码
    TThostFtdcTraderIDType  ActiveTraderID;
    ///结算会员编号
    TThostFtdcParticipantIDType ClearingPartID;
    ///序号
    TThostFtdcSequenceNoType    SequenceNo;
    ///前置编号
    TThostFtdcFrontIDType   FrontID;
    ///会话编号
    TThostFtdcSessionIDType SessionID;
    ///用户端产品信息
    TThostFtdcProductInfoType   UserProductInfo;
    ///状态信息
    TThostFtdcErrorMsgType  StatusMsg;
    ///用户强平标志
    TThostFtdcBoolType  UserForceClose;
    ///操作用户代码
    TThostFtdcUserIDType    ActiveUserID;
    ///经纪公司报单编号
    TThostFtdcSequenceNoType    BrokerOrderSeq;
    ///相关报单
    TThostFtdcOrderSysIDType    RelativeOrderSysID;
    ///郑商所成交数量
    TThostFtdcVolumeType    ZCETotalTradedVolume;
    ///互换单标志
    TThostFtdcBoolType  IsSwapOrder;
    ///营业部编号
    TThostFtdcBranchIDType  BranchID;
    ///投资单元代码
    TThostFtdcInvestUnitIDType  InvestUnitID;
    ///资金账号
    TThostFtdcAccountIDType AccountID;
    ///币种代码
    TThostFtdcCurrencyIDType    CurrencyID;
    ///保留的无效字段
    TThostFtdcOldIPAddressType  reserve3;
    ///Mac地址
    TThostFtdcMacAddressType    MacAddress;
    ///合约代码
    TThostFtdcInstrumentIDType  InstrumentID;
    ///合约在交易所的代码
    TThostFtdcExchangeInstIDType    ExchangeInstID;
    ///IP地址
    TThostFtdcIPAddressType IPAddress;
    ///报单回显字段
    TThostFtdcOrderMemoType OrderMemo;
    ///session上请求计数 api自动维护
    TThostFtdcSequenceNo12Type  SessionReqSeq;
};

ContingentCondition:作为条件单的触发条件

StopPrice:用户条件单的触发价格。

ForceCloseReason:投资者发出的报单请求填0“非强平”

InstallID:CTP内部使用

OrderSubmitStatus:CTP内部使用,普通投资者可以忽略

OrderStatus:报单状态

IsSwapOrder:是否互换单,是为1,否为0

InsertTime:状态为未知单时为ctp系统时间,从交易所返回后变更为交易所时间。

OrderSource:报单来源:该字段由交易所返回的报文中取值,其他交易所有对应的取值,上期所较特殊,除交易所打回的报单以及秒成交的委托,其他的委托该字段为空

ActiveTraderID:是从交易所收回来,原值填写,CTP核心不处理该字段。在撤单回报中,由报单席位号修改为撤单席位号,以方便操作员在撤单回报中看出撤单是从哪个席位发起的。大商所该字段为空,上期所被交易所打回的报单以及秒成交的委托该字段也为空

BusinessUnit:是ctp内部使用字段,建议投资者不要使用

TraderID:是席位号

ActiveUserID:操作用户代码:一般只有撤单该字段才有值,其他情况一般为空

OrderType:报单类型,报价中的情况

ZCETotalTradedVolume:用于在郑商所分笔成交的时候返回总成交手数。

例:比如报入10手,一次性成交后并且是分笔成交的,会有多个OnRtnTrade,一直到最后一个成交回报里才能收到traded=10,但是如果有zce这个字段,你可以在第一个分笔成交回报中就知道本次成交了几手。

CancelTime:对于交易所未返回撤单时间的委托,将排队机收到交易所撤单成功回报的时间作为撤单时间。目前中金所、大商所六期系统会返回撤单时间,上期所、能源中心、郑商所、大商所七期不返回撤单时间。

3. 返回

当查询无记录时,指针返回为null

4. FAQ

不同交易所,为什么InsertDate有的是自然日有的是交易日?

Insertdate字段,未知单、错单、上期所回报、能源回报、郑商所回报中该字段为自然日;大商所回报中为交易日。

建议确认一笔报单的时间用Tradingday+InsertTime这一组字段。

CTP是否支持单子挂起和激活回报的处理?如果其它柜台有此功能,CTP在收到这些回报能否有效处理,会不会引起系统问题?

交易所支持,ctp不支持,如果其他柜台对报单做挂起和激活操作,CTP支持未成交的挂单(OrderStatus=未成交不在队列中), 不支持部分成交的挂单(OrderStatus= 部分成交不在队列中)