【发布时间】:2014-04-28 10:21:35
【问题描述】:
在我的交易应用程序中,我有股票价格的“实时报价”。我需要维持SMA。假设我想要 20 根蜡烛的 SMA,其中每根蜡烛的持续时间为 10 秒。这意味着
每 10 秒我有一个“检查点”,其中:
- 我“关闭”当前蜡烛并存储最后 10 秒的平均价格。平均值为 (max - min) / 2
- 我“开始”新蜡烛并存储最新价格。
- 我清理“过时”的蜡烛。
每个滴答声:
- 我更新当前“形成”蜡烛的“最后”价格并重新计算 SMA。
因此,在任何时间点上,我都需要“重新计算”SMA。在大多数情况下,仅更改最后一根蜡烛的价格(因为我们使用 last 价格)。每 10 秒一次,我需要做更多的额外工作——我需要“忘记”过时蜡烛的平均值,并“存储”“刚刚创建”蜡烛的平均值。
您能否建议如何以最低延迟实现此功能?低延迟是主要要求。
【问题讨论】:
-
您是否考虑过使用指数移动平均线?它不仅可以说更有意义,而且增量计算非常容易。
-
@javapowered 你能分享代码吗?
-
@AlanStokes 有趣的是为什么指数很容易增量计算,你能添加链接吗?
-
@MrPhi 我目前还没有任何代码