对于表结构,例如包含一个 int 键(以纳秒精度反映时代,这是必需的)和价格。如何将其下采样为具有时间间隔(例如分钟)的开高低收行(ohlc 条)组?
问问题
63 次
1 回答
0
我会通过使用多查询来解决这个问题,这比单独运行每个查询要快得多。对于您希望为其构建 OHLC 柱的每个时期,将有四个查询。下面的伪代码给出了一个粗略的解决方案,省略了一些可以在 GridDB 的MultiQuery 文档中找到的细节。
期间:
queries.add("select min(price) where epoch > period.start and epoch < period.end")
queries.add("select max(price) where epoch > period.start and epoch < period.end")
queries.add("select * where epoch > period.start order by epoch asc limit 1")
queries.add("select * where epoch < period.end order by epoch desc limit 1")
fetch_all(queries)
while i < len(queries)
for metric in ['low', 'high', 'open', 'close']:
query = queries[i]
rs = query.get_rs()
while rs.has_next():
bars[period[p].start][metric] = rs.next()
i=i+1
p=p+1
*请注意,虽然尚不支持纳秒精度。
于 2019-10-09T09:58:05.753 回答