CTP2报价录入

客户端通过接口报单时,需要填写23个字段

///经纪公司代码
TThostFtdcBrokerIDType BrokerID;
///投资者代码
TThostFtdcInvestorIDType InvestorID;
///合约代码
TThostFtdcInstrumentIDType InstrumentID;
///报价引用
TThostFtdcOrderRefType QuoteRef;
///用户代码
TThostFtdcUserIDType UserID;
///卖价格
TThostFtdcPriceType AskPrice;
///买价格
TThostFtdcPriceType BidPrice;
///卖数量
TThostFtdcVolumeType AskVolume;
///买数量
TThostFtdcVolumeType BidVolume;
///请求编号
TThostFtdcRequestIDType RequestID;
///业务单元
TThostFtdcBusinessUnitType BusinessUnit;
///卖开平标志
TThostFtdcOffsetFlagType AskOffsetFlag;
///买开平标志
TThostFtdcOffsetFlagType BidOffsetFlag;
///卖投机套保标志
TThostFtdcHedgeFlagType AskHedgeFlag;
///买投机套保标志
TThostFtdcHedgeFlagType BidHedgeFlag;
///衍生卖报单引用
TThostFtdcOrderRefType AskOrderRef;
///衍生买报单引用
TThostFtdcOrderRefType BidOrderRef;
///应价编号
TThostFtdcOrderSysIDType ForQuoteSysID;
///交易所代码
TThostFtdcExchangeIDType ExchangeID;
///投资单元代码
TThostFtdcInvestUnitIDType InvestUnitID;
///交易编码
TThostFtdcClientIDType ClientID;
///IP地址
TThostFtdcIPAddressType IPAddress;
///Mac地址
TThostFtdcMacAddressType MacAddress;

 

到了交易前置,添加了两个参数:

com_front_id
com_session_id

 

接着到了排队机;

 

然后就到了交易引擎,根据ExchangeID按不同交易所执行宏ORDER_INSERT,在宏里调用了相应交易所版本的quote_insert函数,以郑商所的quote_insert为例:

1)同步状态检查

2)合约检查

3)买卖数量应该一致,指AskVolume与BidVolume

4)郑商所只能是投机,指AskHedgeFlag与BidHedgeFlag

5)设置报价的ExchangeID、ExchangeInstID、TradingDay、SettlementID

6)会话检查

检查是超级会话还是普通会话,如果是普通会话需要校验会话合法性、校验是否在本中心有交易权限。

7)检查报价是否是已接受过的(不支持抢)

通过FrontID+SessionID+InstrumentID+QuoteRef查找郑商所报价表,找到了就是抢!

8)检查报价的买卖价格是否在行情中包含的涨停板价、跌停板价之间

9)经纪公司检查

10)投资者检查

11)取交易编码

来自“郑商所交易编码”表中包含的ClientID

12)交易权限检查

13)报价状态设置

14)交易所会话检查

TraderID、InstallID、ParticipantID、BussinessUnit、QuoteLocalID

15)QuoteRef

不管是超级会话还是普通会话,只要报单引用为空,就需要调用宏GET_SESSION_REF生成一个

16)handle_quote

如果找不到旧的报价

  衍生卖单的一些字段根据报价来设置,包括OrderRef、OrderLocalID、OrderStatus、OrderSubmitStatus、OrderSysID(只不过为空而已)、OrderType、OrderPriceType、ContingentCondition、TimeCondition、VolumeCondition等重要的字段,然后如果衍生卖单的卖数量AskVolume大于0,则调用handle_order进行资金/持仓的冻结,最后更新郑商所报单表;

  衍生买单直接拷贝自衍生卖单,当然了要改变一些字段:方向Direction、价格LimitPrice、数量VolumeTotalOriginal、剩余数量VolumeTotal、买开平标志BidOffsetFlag、买投机套保标志BidHedgeFlag,然后如果衍生买单的买数量BidVolume大于0,则调用handle_order进行资金/持仓的冻结,最后更新郑商所报单表;

如果可以找到旧的报价

  根据旧报价分别寻找原来的卖单和买单,如果找不到就不用处理了。

可以肯定的是quote_insert期间调用的handle_quote肯定不会有旧的报价,但是在别的场景下也有调用handle_quote,比如ntf_exchange_quote_error,quote_action

转载于:https://www.cnblogs.com/SAPCE/p/8250363.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值