Negligible Psychological Misery

npm

Need private packages and team management tools?Check out npm Orgs. »

moving-averages

4.0.5 • Public • Published

Build Status Coverage

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

636

version

4.0.5

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability