我很难找到将一些 OHLCV 数据合并到不同时期的最高效方法。
假设我有几万个 OHLCV 数据,其结构简单,例如:
{
"timestamp":1472688000000,
"open":77.644997,
"high":78.320331,
"close":78.320331,
"low":77.638,
"volume":300
}
现在,这个数据是每分钟或每秒。出于显而易见的原因,我应该能够将这些数据分为 1m - 15m - 1hr - 4hr - 1d - 1M - 3M - 6M - 1Y 周期。我发现的所有示例都是关于放大和缩小数据,也就是只显示数据的一部分,但我需要的是聚合它。
OHLCV 数据根本无法总结,我的意思是您不能简单地总结 15 x 1m 的数据并创建一个 15m 的数据点,但是有不同属性的规则,例如;
- 获取 15 x 1m 数据点
- 取
open
第一个数据点的值 - 取
close
最后一个数据点的值 - 取所有点中的最高点
high
和最低low
点 - 将所有卷汇总为
volume
- 第
timestamp
一个数据点的值
对于其他时段,我们可以使用不同的计算时段重用相同的逻辑,例如 4 x 15m 到 1hr 或 4 x 1hr 到 4hr 等。
这当然可以通过基本的 JavaScript 实现,但在句点之间切换时性能不够。
总而言之,我的问题是;
- 有没有一种高性能的方法来实现这种数据分箱,或者我可以使用任何这样的库吗?
- 是否有已知的图表库可供 ReactJs 和 React Native 使用,提供开箱即用的此类功能?
谢谢你。