UNPKG

trading-signals

Version:

Technical indicators to run technical analysis with JavaScript / TypeScript.

37 lines 1.26 kB
import { TrendIndicatorSeries, TradingSignal } from '../../base/Indicator.js'; import { pushUpdate } from '../../util/pushUpdate.js'; export class ROC extends TrendIndicatorSeries { prices = []; interval; #comparePrice = null; constructor(interval) { super(); this.interval = interval; } getRequiredInputs() { return this.interval; } update(price, replace) { if (!replace || this.#comparePrice === null) { this.#comparePrice = this.prices.length === this.interval ? this.prices[0] : null; } pushUpdate(this.prices, replace, price, this.interval); if (this.#comparePrice !== null) { return this.setResult((price - this.#comparePrice) / this.#comparePrice, replace); } return null; } calculateSignalState(result) { const hasResult = result !== null && result !== undefined; const isBearish = hasResult && result < 0; switch (true) { case !hasResult: return TradingSignal.UNKNOWN; case isBearish: return TradingSignal.BEARISH; default: return TradingSignal.BULLISH; } } } //# sourceMappingURL=ROC.js.map