UNPKG

jesse-indicators

Version:

A Technical indicator library for TypeScript.

33 lines (27 loc) 747 B
import SMA from '../SMA' /** * Exponential Moving Average (EMA) * * @param {number[]} prices * @param {number} period * @returns {number} */ export default function EMA(prices: number[], period: number): number { let EM: number = SMA(prices.slice(0, period), period) let F: number = 2 / (period + 1) for (let index = 0; index < prices.slice(period).length; index++) { EM = EM + F * (prices.slice(period)[index] - EM) } return EM } /** * EMA calculation that uses the last known EMA to boost performance. * * @param price * @param period * @param EM */ export function quickEMA(price: number, period: number, EM: number): number { let F: number = 2 / (period + 1) return EM + F * (price - EM) }