Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

题主提供的数据是深交所的。上交所的逐笔数据并不是完备的,不能完整恢复订单簿,题主对于这个问题有解决思路吗 #3

Open
541380000 opened this issue Jun 2, 2023 · 4 comments

Comments

@541380000
Copy link

No description provided.

@541380000
Copy link
Author

上交所数据不完备,比如说:

  1. 新增委托订单,仅在首次撮合后发布(对应委托量为首次撮合后的剩余委托量);之后在被
    动成交过程中,不再发布该笔委托的变动信息;
  2. 竞价逐笔委托与竞价逐笔成交属于不同的消息,没有固定的到达先后次序关系

@fpga2u
Copy link
Owner

fpga2u commented Jun 5, 2023

  1. 委托“仅在首次撮合后发布"意味着如果撮合后无法成交也会发布,就像深圳一样。首次撮合如果没有对手盘就没有成交,那么委托数量就是原始数量。(目前我还没有着手处理上交所数据,这个是听说的。)

  2. 目前可以用逐笔委托和逐笔成交消息中的 BizIndex(业务序号)字段来排序,在交易所文档中有以下说明:

    每个通道( Channel) 内逐笔成交与逐笔委托消息合并后生成的连续编号(BizIndex), 并从 1 开始递增。
    竞价逐笔委托消息与竞价逐笔成交消息属于不同的消息, 没有固定的到达先后次序关系。 
    BizIndex 字段为竞价逐笔委托消息和竞价逐笔成交消息合并后的连续编号, 
    故可以通过 BizIndex 字段判断竞价逐笔委托消息与竞价逐笔成交消息产生的先后顺序。
    

等上交实装新的竞价逐笔合并数据(UA5803)就没有bizIndex了(也不需要了),参考现在的债券竞价逐笔合并数据(UA3901)。

@541380000
Copy link
Author

541380000 commented Jun 5, 2023

@fpga2u
竞价逐笔委托消息与竞价逐笔成交消息属于不同的消息, 没有固定的到达先后次序关系。
和一位量化的朋友沟通了一下,同时自己也验证了一下(我之前也接过上交所的逐笔行情,不是逐笔合并数据,是老的数据),这句话说的应该是:逐笔委托和逐笔成交分属不同的通道,各自独立编号;BizIndex不是由撮合网关提供的,而是由行情网关加进去的;只能用于确认数据完整性,不能用于确认逐笔委托和逐笔成交的相对顺序
因此上交逐笔数据只能用于和tick数据结合,在回测时提供大致的tick间价格波动信息

对于上交所,举例来说
一个1手的市价单进入交易所,上交所发1手的trade,不发order
一个2手的限价单进入交易所,成交了一手,剩下了一首在第一档排队。交易所发一个trade,再发一个order;当出现trade的时候,order还没有收到。那对这一个trade数据,orderbook应该发生什么变化?(orderbook肯定发生了变化,因为此时这个order肯定已经排队了)

因此,深交所恢复出来的数据,如果当天交易所数据完整,则交易所发布的所有tick数据都可以在恢复出来的tick中找到;而上交所无论用何种方式恢复,都无法和深交所一样,因为信息是不完备的(缺少严格的顺序信息)

see also: https://www.zhihu.com/question/53079335

@fpga2u
Copy link
Owner

fpga2u commented Jun 6, 2023

@fpga2u 竞价逐笔委托消息与竞价逐笔成交消息属于不同的消息, 没有固定的到达先后次序关系。 和一位量化的朋友沟通了一下,同时自己也验证了一下(我之前也接过上交所的逐笔行情,不是逐笔合并数据,是老的数据),这句话说的应该是:逐笔委托和逐笔成交分属不同的通道,各自独立编号;BizIndex不是由撮合网关提供的,而是由行情网关加进去的;只能用于确认数据完整性,不能用于确认逐笔委托和逐笔成交的相对顺序 因此上交逐笔数据只能用于和tick数据结合,在回测时提供大致的tick间价格波动信息

对于上交所,举例来说 一个1手的市价单进入交易所,上交所发1手的trade,不发order 一个2手的限价单进入交易所,成交了一手,剩下了一首在第一档排队。交易所发一个trade,再发一个order;当出现trade的时候,order还没有收到。那对这一个trade数据,orderbook应该发生什么变化?(orderbook肯定发生了变化,因为此时这个order肯定已经排队了)

因此,深交所恢复出来的数据,如果当天交易所数据完整,则交易所发布的所有tick数据都可以在恢复出来的tick中找到;而上交所无论用何种方式恢复,都无法和深交所一样,因为信息是不完备的(缺少严格的顺序信息)

see also: https://www.zhihu.com/question/53079335

也有可能,上交所各种机制确实挺迷的,等有空了深入分析一下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants