首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OrderBook数据库设计

OrderBook数据库设计
EN

Stack Overflow用户
提问于 2011-10-31 21:58:35
回答 2查看 4.9K关注 0票数 9

OrderBook中充斥着买卖订单。更新,新订单可能执行交易。

我似乎找不到任何实现的例子。

我们可以给每个订单一个id,checkExecute一个一个地下订单。但我们想要的东西将扩大到数千活跃的订单。

我们可以对价格进行排序,以得到将要执行的订单(因为它们重叠)。但我们必须谨慎行事,只按接到命令的顺序执行:)

有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 06:24:37

  • 我们必须小心谨慎,只按接到订单的顺序执行。

市场数据通常是以时间序列的方式建模的,因此它自然是由时间戳来排序的,而时间戳目前的精度可以达到皮秒级。

取决于您所依赖的技术,如果您不介意支付,我将使用OneTick,这是一个时间序列DB,它已经有一个内置的订单书,书的深度/价格水平,CEP和更多。

如果您想自己构建它(或者依赖免费产品),请看一看OpenTSDB,它是一个开源的时间序列DB,具有LGPLv3+许可证。当然,它比OneTick慢,但由于您只需要成千上万(OneTick处理数十亿),这取决于您的速度要求,它可能会工作。

至于OrderBook数据模型,它将取决于您究竟将如何使用这本书:例如,您关心多个价格水平吗?书的顶端?你需要把标书/要求与实际订单相匹配吗?

但是,您可以从设计一个记录OrderBook事件的模式开始,例如:

这个例子来自LMAX协议参考指南

票数 2
EN

Stack Overflow用户

发布于 2011-10-31 22:08:52

Python的OrderedDict可以作为可伸缩OrderBook的基础。您希望每个价格级别都有一个有序字典,这样订单将根据价格/时间优先级进行匹配。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7960251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档