使用Javascript,Nodejs计算EMA(指数移动平均值)的结果错误

时间:2018-10-16 19:14:02

标签: javascript node.js

我正在尝试使用此脚本计算EMA。 但这不能给我正确的EMA。 这可能有很多原因,但是我不确定这是什么。 我为EMA尝试了不同的公式,但没有任何更好的结果,我实际上不是专业的编码人员也不是数学家,因此我看不到自己在做错什么。

如何随时间计算EMA值?对于第一个值,我使用SMA计算了第一个EMA,我想这应该起作用-对吗?

我的EMA值 = 0.033144798412698406

实际EMA值 = 0.033084

Close = last closing price

Period = 20;

Multiplier = (2 / (period + 1));

function calculateEMA() {
    if (EMA == 0) {
        EMA = (Close - SMA) * multiplier + SMA;
        calculateEMA();
    } else {
        for (a = 0; a < period; a++) {
            EMA = (Close - previous_ema) * multiplier + previous_ema;
            console.log(EMA + " ema");
            previous_ema = EMA;
        }
    }
}

// 更新添加了我的整个脚本(可以运行)-https://pastebin.com/91GEuATM 您需要安装Nodejs和binance节点api(npm install node-binance-api --save);请记住,这只是我的“测试脚本”,因此是所有奇怪的变量名等。

// 更新2 标记样本数据https://pastebin.com/AFzf7GwQ

0 个答案:

没有答案