UNPKG

@showr/indicators

Version:

Technical indicators for Trading made with Showr

29 lines (28 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AverageGain = void 0; const core_1 = require("@showr/core"); const utils_1 = require("../utils"); class AverageGain extends core_1.Indicator { constructor(name = 'AverageGain', params) { super(name, function (dataset) { const { attribute, period } = params; const datasetLength = dataset.value.length; const lastAverageGain = dataset.at(-2)?.getIndicator(this.name); if (lastAverageGain && datasetLength > period) { const lastQuoteValue = dataset.valueAt(-1, attribute); const secondLastQuoteValue = dataset.valueAt(-2, attribute); const difference = lastQuoteValue - secondLastQuoteValue; const currentGain = difference > 0 ? difference : 0; return (lastAverageGain * (period - 1) + currentGain) / period; } else { const flattenDataset = dataset.flatten(attribute); return (0, utils_1.getAverageGain)(flattenDataset, period) || NaN; } }, { params, }); } } exports.AverageGain = AverageGain;