All Projects → jonschlinkert → exponential-moving-average

jonschlinkert / exponential-moving-average

Licence: MIT License
Calculate an exponential moving average from an array of numbers.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to exponential-moving-average

finmath
The collections of simple, weighted, exponential, smoothed moving averages.
Stars: ✭ 49 (+19.51%)
Mutual labels:  math, exponential-moving-average, moving-average
python-baseconv
Python module to convert numbers from base 10 integers to base X strings and back again.
Stars: ✭ 40 (-2.44%)
Mutual labels:  math, numbers
SurrealNumbers.jl
Implementation of Conway's Surreal Numbers
Stars: ✭ 30 (-26.83%)
Mutual labels:  math, numbers
Algodeck
An Open-Source Collection of 200+ Algorithmic Flash Cards to Help you Preparing your Algorithm & Data Structure Interview 💯
Stars: ✭ 4,441 (+10731.71%)
Mutual labels:  math, array
color-math
Expressions to manipulate colors.
Stars: ✭ 18 (-56.1%)
Mutual labels:  math, calculate
utils.js
👷 🔧 zero dependencies vanilla JavaScript utils.
Stars: ✭ 14 (-65.85%)
Mutual labels:  math, array
Quaternion.js
A JavaScript Quaternion library
Stars: ✭ 86 (+109.76%)
Mutual labels:  math, numbers
Online-Tools
Webpage offering a wide range of online tools
Stars: ✭ 38 (-7.32%)
Mutual labels:  math
array-to-sentence
Join all elements of an array and create a human-readable string
Stars: ✭ 32 (-21.95%)
Mutual labels:  array
combi
Pythonic package for combinatorics
Stars: ✭ 51 (+24.39%)
Mutual labels:  math
ChangePrecision.jl
macro to change the default floating-point precision in Julia code
Stars: ✭ 28 (-31.71%)
Mutual labels:  math
array-access
PHP multi array access
Stars: ✭ 23 (-43.9%)
Mutual labels:  array
elementary-math
初等数学笔记,LaTeX 排版,内容涉及代数、数论、几何、组合等。
Stars: ✭ 68 (+65.85%)
Mutual labels:  math
keisan
A Ruby-based expression parser, evaluator, and programming language
Stars: ✭ 48 (+17.07%)
Mutual labels:  math
total-serialism
Toolbox full of Algorithmic Composition methods
Stars: ✭ 74 (+80.49%)
Mutual labels:  array
Euler
The open-source computational framework for the Swift language
Stars: ✭ 37 (-9.76%)
Mutual labels:  math
Data-Structures-and-Algorithms
Data Structures and Algorithms implementation in Python
Stars: ✭ 31 (-24.39%)
Mutual labels:  array
VBA-Arrays
😎 Array functions that are similar JavaScript functions. Example: Push, Pop, Shift, Unshift, Sort, length, toString.
Stars: ✭ 48 (+17.07%)
Mutual labels:  array
ienumerable
Deep immutable, Lightweight Enumerable with superpowers
Stars: ✭ 63 (+53.66%)
Mutual labels:  array
Set-Theory
Coq encoding of ZFC and formalization of the textbook Elements of Set Theory
Stars: ✭ 55 (+34.15%)
Mutual labels:  math

exponential-moving-average NPM version NPM monthly downloads NPM total downloads Linux Build Status

Calculate an exponential moving average from an array of numbers.

Install

Install with npm:

$ npm install --save exponential-moving-average

Usage

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:

[
  '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 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

ema(arr, 10);
// or
ema(arr, {range: 10});

format

Format the numbers as they're added to the result.

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.

Please read the contributing guide for advice on opening issues, pull requests, and coding standards.

Building docs

(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)

To generate the readme, run the following command:

$ 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:

$ npm install && npm test

Author

Jon Schlinkert

License

Copyright © 2017, Jon Schlinkert. Released under the MIT License.


This file was generated by verb-generate-readme, v0.5.0, on April 09, 2017.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].