如何正确地将订单簿数据写入具有相同时间戳的 influxdb

Posted

技术标签:

【中文标题】如何正确地将订单簿数据写入具有相同时间戳的 influxdb【英文标题】:How to properly write order book data into influxdb with same timestamp 【发布时间】:2019-01-22 11:25:03 【问题描述】:

我正在尝试将订单簿数据存储到流入数据库中。这是数据的样子:

Datetime           BidPrice BidSize    AskPrice  AskSize    Level

2018-08-15 09:21:15 6347.67 14.561605   6347.68 3.189313    0
2018-08-15 09:21:15 6347.52 2.351050    6348.10 0.102000    1
2018-08-15 09:21:15 6347.47 4.640000    6348.96 0.010000    2
2018-08-15 09:21:15 6346.20 2.902000    6349.00 0.300000    3
2018-08-15 09:21:15 6346.19 5.042739    6349.20 0.002000    4
2018-08-15 09:21:15 6346.13 1.072136    6349.22 0.433458    5
2018-08-15 09:21:15 6346.00 0.070000    6350.00 4.434813    6
2018-08-15 09:21:15 6345.50 0.002000    6350.15 0.170300    7
2018-08-15 09:21:15 6345.15 3.500000    6350.44 0.202500    8
2018-08-15 09:21:15 6345.00 0.100000    6350.54 0.001000    9
2018-08-15 09:21:15 6344.89 1.000000    6350.82 0.001000    10

Level 是订单簿中的深度。所以 Level=0 将是本书的顶部。当我写点:

client.write_points(df,measurement='bidask',time_precision='s',database='orderbook_test',tags='Market':'BTC/USD',protocol='json')

因为它们都具有相同的时间戳,所以我只得到 Level=10 的条目。它会覆盖其他的。我猜我需要一些如何将 Level 设置为 tag 以便每一行都可以是唯一的,但我不知道该怎么做。

【问题讨论】:

出于好奇,您如何查询数据以获取订单簿?对于给定的datetime 或通过levels 查询,您是否获得所有积分? 是给定日期时间的查询给了我整个订单簿快照。如果我按级别查询,比如 0 级,它会给我图书顶部的数据。 1.如果您搜索例如:2018-08-15 09:22:16,但没有,并且在2018-08-15 09:22:03 和 2018-08-15 09:22:33 处有快照,您如何找到它们? 2. 很容易获得完整的订单簿快照或确切的级别,但是您如何获得级别 0 到 4,范围查询似乎无法在标签上正常工作,还是我错了?谢谢 他们为我工作。我以前做的是拉入整个数据集,然后在索引上执行 Pandas groupby。如果我只想要前 5 个级别 l,在我的查询中,我曾经添加 where Level 【参考方案1】:

我使用tag_columns=['Level']解决了这个问题

【讨论】:

以上是关于如何正确地将订单簿数据写入具有相同时间戳的 influxdb的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将 JSP 放入 WEB-INF 中?

效率:删除具有相同时间戳的行,同时仍然具有该时间戳的第二列的中值

如何正确地将字符数组写入文本文件

如何防止数据透视图成为工作表副本上的常规图表?

如何仅从组中查询具有最新时间戳的文档?

如何连续同步/合并两个 MySQL 数据库到第三个