Math.Net экспоненциальная скользящая средняя - PullRequest
0 голосов
/ 11 октября 2019

Я использую простое скользящее среднее в Math.Net, но теперь, когда мне также нужно вычислить EMA (экспоненциальное скользящее среднее) или любой вид взвешенного скользящего среднего, я не могу найти его в библиотеке.

Я просмотрел все методы в MathNet.Numerics.Statistics и за его пределами, но не нашел ничего подобного.

Это отсутствует в библиотеке или мне нужно сослаться на какой-то дополнительный пакет?

1 Ответ

0 голосов
/ 14 октября 2019

Я не вижу никаких EMA в MathNet.Numerics, однако это тривиально для программирования. Приведенная ниже процедура основана на определении в Investopedia.

    public double[] EMA(double[] x, int N)
    {
        // x is the input series            
        // N is the notional age of the data used
        // k is the smoothing constant

        double k = 2.0 / (N + 1);
        double[] y = new double[x.Length];
        y[0] = x[0];
        for (int i = 1; i < x.Length; i++) y[i] = k * x[i] + (1 - k) * y[i - 1];

        return y;
    }
...