ewma
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/ewma package

2.0.1 • Public • Published

NPM Version Build Status

EWMA

An exponential weighted moving average for Node.js and the browser!

npm install -g ewma

Usage

Compute the exponential weighted moving average of a series of values. The time at which you insert the value into Ewma is used to compute a weight (recent points are weighted higher). The parameter for defining the convergence speed (like most decay process) is the half-life.

e.g. with a half-life of 10 unit, if you insert 100 at t=0 and 200 at t=10 the ewma will be equal to (200 - 100)/2 = 150 (half of the distance between the new and the old value).

var ewma = new EWMA(halfLifeMs, initialValue, clock)

  • halfLifeMs - {Number} parameter representing the speed of convergence
  • initialValue - {Number} initial value
  • clock - Optional {Number} clock object used to read time, must support Date.now() style method. Defaults to Date.

returns an object computing the ewma average

ewma.insert(x)

  • x - The next value, ewma will automatically compute the EWMA based on the clock difference between this value and the last time insert was called

ewma.reset(x)

  • x - Set the EWMA to exactly x.

ewma.value()

Returns the current EWMA value.

Examples

These are generated using a 500ms interval with a half life indicated in the key. For the source code, or to reproduce yourself, check the Example directory.

Contributions

Contributions welcome, please ensure make runs clean.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i ewma

Weekly Downloads

98,356

Version

2.0.1

License

MIT

Last publish

Collaborators

  • retrohack3r