从一系列收盘价(nodejs)计算EMA?

我有一组股票(历史数据)的每日收盘价格,格式如下:

var close = [39, 40.133, 38.23, .... , 45.38] 

这些是按照时间顺序排列的。 我正在尝试制作一个EMA(指数移动平均值)的收盘价格数值,以便按照时间顺序与date相关联。

我在nodejs中做这个; 任何帮助将不胜感激!

PS这是我试过的东西:

 var gauss = require('gauss'); var test = [39, 40.133, 38.23, 45.38, 43.83, 42.1, 48, 47, 44.12, 44.33, 46.9]; var vec = test.toVector(); var ma = vec.ema(10); console.log(ma); // Outputs [ 43.2123, 43.88279090909091 ] 

为什么输出这个?

ema函数返回前N个点的EMA向量。 在你的代码中,N是10,因为你的inputvectortest有11个元素,所以可以计算2个移动平均值。

您可以将移动平均值看作是在您的inputvector中滑动的大小为N(在这种情况下为10)的“窗口”。 从最后N个元素开始,计算EMA,然后向左滑动一个元素,计算并继续执行,直到窗口不再移动(通过到达stream的开始位置)。 在这种情况下,窗口只能移动一次,从而得到两个平均值。

 [39, 40.133, 38.23, 45.38, 43.83, 42.1, 48, 47, 44.12, 44.33, 46.9]; -----------------------------> 43.88279090909091 <----------- ----------------> 43.2123 <-------------------------------- 

有关更多详细信息,请参阅文档: https : //github.com/wayoutmind/gauss#vectorema