2013-10-09 29 views
0

我有库存值的数据库中的表,例如:算法用于聚集股票图表数据点出许多DB的条目

id - unique id for this entry 
stockId - ticker symbol of the stock 
value - price of the stock 
timestamp - timestamp of that price 

我想24小时的时间范围内创建单独的阵列,7天和1个月从我的数据库条目,每个数组包含数据点的股票图表。 对于一些stockIds,我每小时只有几个数据点,对于其他数据点可能是几百或几千个。

我的问题: 什么是一个很好的算法来“聚合”可能很多数据点为几个 - 例如,我想每小时最多10个数据点的24小时图表。我如何处理特别高/低的值?

关于股票图表常见的方法是什么?

谢谢您的阅读!

回答

1

一些选项:(假设每小时10分,即,一个大约每隔6分钟)

  • 对于每6分钟的时间内,接最接近所述数据点到周期

  • 的中心每6分钟计算一次,取这段时间内的平均分数

  • 在一个小时内,找出每4分钟时间段的最大值和最小值,并在这些相应集合中选出5个最大值和5个最小值(4分钟是如此几乎随机选择)。

    我原本以为要选择5个最小点和5个最大点,使得每个最大点至少间隔8分钟,对于最小点也是类似的。

    这里的8分钟是我们没有把所有的积分堆积在一起。为什么8分钟?在一个平均分配,60/5 = 12 minutes,所以只是稍微远离那给我们8分钟。

    但是,就实施而言,4分钟的方法会简单得多,应该会得到类似的结果。

你必须看看哪一个给你最理想的结果。最后一个可能会给出一个体面的变化的指标,而第二个可能有一个更稳定的图表。第一个可能会更不稳定。