OrderBook中充斥着买卖订单。更新,新订单可能执行交易。
我似乎找不到任何实现的例子。
我们可以给每个订单一个id,checkExecute一个一个地下订单。但我们想要的东西将扩大到数千活跃的订单。
我们可以对价格进行排序,以得到将要执行的订单(因为它们重叠)。但我们必须谨慎行事,只按接到命令的顺序执行:)
有什么想法?
发布于 2011-11-10 06:24:37
市场数据通常是以时间序列的方式建模的,因此它自然是由时间戳来排序的,而时间戳目前的精度可以达到皮秒级。
取决于您所依赖的技术,如果您不介意支付,我将使用OneTick,这是一个时间序列DB,它已经有一个内置的订单书,书的深度/价格水平,CEP和更多。
如果您想自己构建它(或者依赖免费产品),请看一看OpenTSDB,它是一个开源的时间序列DB,具有LGPLv3+许可证。当然,它比OneTick慢,但由于您只需要成千上万(OneTick处理数十亿),这取决于您的速度要求,它可能会工作。
至于OrderBook数据模型,它将取决于您究竟将如何使用这本书:例如,您关心多个价格水平吗?书的顶端?你需要把标书/要求与实际订单相匹配吗?
但是,您可以从设计一个记录OrderBook事件的模式开始,例如:

这个例子来自LMAX协议参考指南
发布于 2011-10-31 22:08:52
Python的OrderedDict可以作为可伸缩OrderBook的基础。您希望每个价格级别都有一个有序字典,这样订单将根据价格/时间优先级进行匹配。
https://stackoverflow.com/questions/7960251
复制相似问题