XTP SHL2逐笔委托详解:接口与结构体更新

需积分: 0 6 下载量 175 浏览量 更新于2024-08-05 收藏 401KB PDF 举报
"XTP关于SHL2逐笔委托相关使用说明1" 本文主要介绍XTP在支持上海Level2逐笔委托方面的更新内容,包括接口差异、结构体变化以及上交所逐笔委托数据的特性。XTP是一个交易协议,用于对接证券交易所的实时数据和交易指令,对于开发金融应用的程序员来说,理解这些更新至关重要。 首先,接口的区别体现在以下几个方面: 1. **弃用的接口**:SetUDPRecvThreadAffinity和SetUDPParseThreadAffinity这两个绑核函数不再使用。这意味着开发者需要调整代码,不再依赖这两个接口来设置UDP接收和解析线程的CPU绑定。 2. **新增的接口**:引入了SetUDPRecvThreadAffinityArray和SetUDPParseThreadAffinityArray,这两个新的接口允许最多绑定4个CPU核心,用于接收和解析UDP数据。实际绑定的核心数取决于UDP组播组和订阅情况。这些接口提供了更灵活的多核处理能力,有助于优化性能。 接下来,我们来看看结构体的变化: 1. **XTPTBT结构体**:新增了字段`seq`。这个字段非常重要,因为它区分了逐笔委托和逐笔成交的数据,并且提供了排序依据。对于上交所,逐笔委托和逐笔成交在同一个channel下有不同的seq值。`XTPTickByTickStruct.seq`对应原始消息中的BizIndex字段,用于逐笔行情数据的排序;`XTPTickByTickEntrust.seq`表示逐笔委托的编号;`XTPTickByTickTrade.seq`则表示逐笔成交的编号。开发者需要按照`seq`字段对数据进行排序处理。 2. **XTPTickByTickEntrust结构体**:新增字段`order_no`,代表原始订单号,与`XTPTickByTickTrade.bid_no`或`XTPTickByTickTrade.ask_no`对应。这使得跟踪订单状态和匹配成交变得更加方便。 最后,关于上交所逐笔委托数据的特性: 上交所的逐笔委托数据中的`qty`字段表示经过一次撮合后的剩余数量,而不是原始下单的数量。如果某个订单一次性完全成交,那么不会出现对应的逐笔委托数据,只会显示逐笔成交数据。这一点与深交所有所不同,需要在处理数据时特别注意。 对于C#和Java开发者,了解这些更新后,可以更好地利用XTP接口来处理上交所的逐笔委托信息,实现更高效、精确的交易应用。在实际开发中,需要根据新的接口和结构体调整代码,以确保程序能够正确处理SHL2级别的逐笔数据。