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.AverageLoss = void 0; const core_1 = require("@showr/core"); const utils_1 = require("../utils"); class AverageLoss extends core_1.Indicator { constructor(name = 'AverageLoss', params) { super(name, function (dataset) { const { attribute, period } = params; const datasetLength = dataset.value.length; const lastAverageLoss = dataset.at(-2)?.getIndicator(this.name); if (lastAverageLoss && datasetLength > period) { const lastQuoteValue = dataset.valueAt(-1, attribute); const secondLastQuoteValue = dataset.valueAt(-2, attribute); const difference = lastQuoteValue - secondLastQuoteValue; const currentLoss = difference < 0 ? -difference : 0; return (lastAverageLoss * (period - 1) + currentLoss) / period; } else { const flattenDataset = dataset.flatten(attribute); return (0, utils_1.getAverageLoss)(flattenDataset, period) || NaN; } }, { params, }); } } exports.AverageLoss = AverageLoss;