UNPKG

series-processing

Version:

Time-series processing for forex, market analysis, including MA, EMA,...

31 lines (25 loc) 897 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Simple Moving Average * @see https://en.wikipedia.org/wiki/Moving_average * * <output series> = sma(<input series>, length) */ var SMA = exports.SMA = function SMA(outputKey, inputKey, length) { return function (lastPoint, dataStream) { var segment = dataStream.getLastSegment(length); var segmentLength = segment.length; if (segmentLength < length) { // Not enough to calculate return null; } var sma = segment.reduce(function (n, point) { return n + point[inputKey]; }, 0) / segmentLength; return _defineProperty({}, outputKey, sma); }; };