在JS的OHLC中转换连续股票数据

时间:2018-07-04 11:37:57

标签: javascript arrays node.js

我有以下格式的连续数据流,我想根据定义的时间片(例如5分钟,10分钟,30分钟等)将其转换为打开,最高,最低和关闭。同时,buy_quantity并且sell_quantity也应根据选择的时间片进行汇总。 用Javascript在来自websocket的连续实时数据流上执行此操作的最有效方法是什么。 为了增加复杂性,我输入了至少50种不同的股票代码或instrument_token。 理想的解决方案将类似于python的panda软件包中提供的解决方案-这是一个示例https://www.quantinsti.com/blog/tick-tick-ohlc-data-pandas-tutorial/

mv "$file"  "${temp##*_}.pdf"

1 个答案:

答案 0 :(得分:1)

有两个部分:
1.合并数据
2.在图表中显示数据

对于合并数据,高效的数据结构可能如下所示:

data.slice.roundedtime.id

通过这种方式,您不必进行循环搜索,而是可以在遍历输入数据时解决每个记住的值。

{
  "5": { // this line once, for all 5 minutes increments
    "2018 07 03 07:50:00": { // this line each 5 minutes
      "Q6GinQQKKnfA7FrAT": { // this line for each 5 minutes each ticker 
        "volume": 123,
        "high": 20539500,
        "low": 19809750
      },
      "SecondTicker": {
        "volume": 12,
        "high": 1234,
        "low": 123
      }
    },
    "2018 07 03 07:45:00": {
      "Q6GinQQKKnfA7FrAT": {
        "volume": 123,
        "high": 20539500,
        "low": 19809750
      }
    }
  },
  "15": { // this line once, for all 15 minutes increments
    "2018 07 03 07:45:00": {
      "Q6GinQQKKnfA7FrAT": {
        "volume": 123,
        "high": 20539500,
        "low": 19809750
      }
    }
  }
}

数据量对于浏览器而言不是问题。每24小时浏览器页面运行一次且未刷新,我们有:24小时*(2 + 6 + 12)个切片* 50个不同的引号= 24000条记录。

可以计算15分钟和30分钟的汇总,而不用记住。那是一个细节。