如何正确地将订单簿数据写入具有相同时间戳的 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的主要内容,如果未能解决你的问题,请参考以下文章