trading-signals
Version:
Technical indicators to run technical analysis with JavaScript / TypeScript.
37 lines • 1.26 kB
JavaScript
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