https://github.com/jonschlinkert/exponential-moving-average
Calculate an exponential moving average from an array of numbers.
https://github.com/jonschlinkert/exponential-moving-average
array average calculate exponential-moving-average math moving-average numbers
Last synced: 10 months ago
JSON representation
Calculate an exponential moving average from an array of numbers.
- Host: GitHub
- URL: https://github.com/jonschlinkert/exponential-moving-average
- Owner: jonschlinkert
- License: mit
- Created: 2017-04-09T18:58:48.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-01-08T23:43:42.000Z (about 6 years ago)
- Last Synced: 2025-04-30T07:49:58.574Z (10 months ago)
- Topics: array, average, calculate, exponential-moving-average, math, moving-average, numbers
- Language: JavaScript
- Size: 9.77 KB
- Stars: 49
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/contributing.md
- License: LICENSE
Awesome Lists containing this project
README
# exponential-moving-average [](https://www.npmjs.com/package/exponential-moving-average) [](https://npmjs.org/package/exponential-moving-average) [](https://npmjs.org/package/exponential-moving-average) [](https://travis-ci.org/jonschlinkert/exponential-moving-average)
> Calculate an exponential moving average from an array of numbers.
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install --save exponential-moving-average
```
## Usage
```js
var ema = require('exponential-moving-average');
var arr = [
'22.27',
'22.19',
'22.08',
'22.17',
'22.18',
'22.13',
'22.23',
'22.43',
'22.24',
'22.29',
'22.15',
'22.39',
'22.38',
'22.61',
'23.36',
'24.05',
'23.75',
'23.83',
'23.95',
'23.63',
'23.82',
'23.87',
'23.65',
'23.19',
'23.10',
'23.33',
'22.68',
'23.10',
'22.40',
'22.17'
];
// calculate ema over 10 days
console.log(ema(arr, 10));
```
Results in:
```js
[
'22.22',
'22.21',
'22.24',
'22.27',
'22.33',
'22.52',
'22.80',
'22.97',
'23.13',
'23.28',
'23.34',
'23.43',
'23.51',
'23.53',
'23.47',
'23.40',
'23.39',
'23.26',
'23.23',
'23.08',
'22.92'
]
```
## Options
Options may be passed as an object or as a number to specify only the [range](#range) to use.
### range
The number of array elements to use for the moving average. If no number is specified half of the length of the array is used.
**Example**
```js
ema(arr, 10);
// or
ema(arr, {range: 10});
```
### format
Format the numbers as they're added to the result.
```js
ema(arr, {
format: function(num) {
return num.toFixed(3);
}
});
```
## About
### Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
### Building docs
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
To generate the readme, run the following command:
```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
```
### Running tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
```sh
$ npm install && npm test
```
### Author
**Jon Schlinkert**
* [github/jonschlinkert](https://github.com/jonschlinkert)
* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
### License
Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
Released under the [MIT License](LICENSE).
***
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 09, 2017._