moving-averages

    4.0.6 • Public • Published

    Build Status Coverage

    WARNING

    This module is lack of maintainance.

    If you are familiar with python programming maybe you could check stock-pandas which provides powerful statistic indicators support, and is backed by numpy and pandas, The performance of stock-pandas is many times higher than JavaScript libraries, and can be directly used by machine learning programs.


    moving-averages

    The complete collection of FinTech utility methods for Moving average, including:

    And moving-averages will also handle empty values.

    install

    $ npm i moving-averages

    usage

    import {
      ma, dma, ema, sma, wma
    } from 'moving-averages'
    
    ma([1, 2, 3, 4, 5], 2)
    // [<1 empty item>, 1.5, 2.5, 3.5, 4.5]

    Simple Moving Average: ma(data, size)

    • data Array.<Number|undefined> the collection of data inside which empty values are allowed. Empty values are useful if a stock is suspended.
    • size Number the size of the periods.

    Returns Array.<Number|undefined>

    Special Cases

    // If the size is less than `1`
    ma([1, 2, 3], 0.5)       // [1, 2, 3]
    
    // If the size is larger than data length
    ma([1, 2, 3], 5)         // [<3 empty items>]
    
    ma([, 1,, 3, 4, 5], 2)
    // [<2 empty items>, 0.5, 1.5, 3.5, 4.5]

    And all of the other moving average methods have similar mechanism.

    Dynamic Weighted Moving Average: dma(data, alpha, noHead)

    • data
    • alpha Number|Array.<Number> the coefficient or list of coefficients alpha represents the degree of weighting decrease for each datum.
      • If alpha is a number, then the weighting decrease for each datum is the same.
      • If alpha larger than 1 is invalid, then the return value will be an empty array of the same length of the original data.
      • If alpha is an array, then it could provide different decreasing degree for each datum.
    • noHead Boolean= whether we should abandon the first DMA.

    Returns Array.<Number|undefined>

    dma([1, 2, 3], 2)    // [<3 empty items>]
    
    dma([1, 2, 3], 0.5)  // [1, 1.5, 2.25]
    
    dma([1, 2, 3, 4, 5], [0.1, 0.2, 0.1])
    // [1, 1.2, 1.38]

    Exponential Moving Average: ema(data, size)

    Calulates the most frequent used exponential average which covers about 86% of the total weight (when alpha = 2 / (N + 1)).

    • data
    • size Number the size of the periods.

    Returns Array.<Number|undefined>

    Smoothed Moving Average: sma(data, size, times)

    Also known as the modified moving average or running moving average, with alpha = times / size.

    • data
    • size
    • times Number=1

    Returns Array.<Number|undefined>

    Weighted Moving Average: wma(data, size)

    Calculates convolution of the datum points with a fixed weighting function.

    Returns Array.<Number|undefined>

    Related FinTech Modules

    MIT

    Install

    npm i moving-averages

    DownloadsWeekly Downloads

    8,085

    Version

    4.0.6

    License

    MIT

    Unpacked Size

    13.3 kB

    Total Files

    10

    Last publish

    Collaborators

    • kael