买卖股票的数据结构 - 订单簿

买卖股票的数据结构 - 订单簿

 title=

最近股票市场很热闹啊,你知道买单和卖单是如何匹配的吗?

证券交易所使用的数据结构称为订单簿 (Order Book)。订单簿是按价格排列的订单队列。它有一个买入簿和一个卖出簿,匹配时按照先进先出 (First In First Out)的原则。

下图是一个简单的订单簿数据结构示意图。

买卖股票的数据结构 - 订单簿_第1张图片

我们结合图来看一个例子。如果买入 2700 股的市价单,会发生什么情况呢?

  1. 该买入订单与价格为 100.10 的所有卖出订单以及价格为 100.11 的第一笔订单(以浅红色显示)相匹配。
  2. 现在,由于大买单 “吃掉 ”了卖出簿上的第一个价位,最佳卖出价从 100.10 升至 100.11。
  3. 因此,当市场看涨时,人们倾向于买入股票,价格就会一涨再涨。

订单簿的高效数据结构必须满足以下条件:

  • 恒定的查询时间。操作包括:
  • 获取某一价位或两个价位之间的成交量
  • 查询最佳买入价/卖出价。
  • 快速添加/取消/执行/更新操作,时间复杂度最好为 O(1)。操作包括:
  • 下新订单
  • 取消订单
  • 匹配订单

欢迎点赞留言提出你的宝贵意见!

【图解架构设计,关注公众号:ByteByteGo】

你可能感兴趣的:(后端)