gpt4 book ai didi

javascript - 使用 javascript 计算指数移动平均线 (EMA)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:12:20 44 4
gpt4 key购买 nike

您好,可以用 javascript 计算 EMA 吗?

我尝试应用的 EMA 公式是这个

EMA = array[i] * K + EMA(previous) * (1 – K)

其中 K 是平滑因子:

K = 2/(N + 1)

N 是我要考虑的值的范围

所以如果我有一个像这样的值数组,并且这个值会随着时间的推移而增长:

var data = [15,18,12,14,16,11,6,18,15,16];

目标是有一个函数,它返回 EMA 的数组,因为任何这个值,期望第一个“范围”值,有这个 EMA,对于数据上的每个项目,我有相关的 EMA值(value)。这样我就可以使用全部或仅使用最后一个来“预测”下一个。

function EMACalc(Array,Range) {
var k = 2/(Range + 1);
...
}

我不知道如何实现这一点,任何帮助将不胜感激

最佳答案

我不知道我是否完全理解你的需要,但我会给你一个函数的代码,该函数返回一个数组,其中为每个索引计算的 EMA > 0(第一个索引没有任何以前的 EMA计算,并将返回输入的第一个值)。

function EMACalc(mArray,mRange) {
var k = 2/(mRange + 1);
// first item is just the same as the first item in the input
emaArray = [mArray[0]];
// for the rest of the items, they are computed with the previous one
for (var i = 1; i < mArray.length; i++) {
emaArray.push(mArray[i] * k + emaArray[i - 1] * (1 - k));
}
return emaArray;
}

应该这样做。

关于javascript - 使用 javascript 计算指数移动平均线 (EMA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057020/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com