UNPKG

quant-zero

Version:

Node-Quant is a powerful Node.js package for developing and testing quantitative trading strategies in cryptocurrency markets, offering tools for backtesting and performance analysis.

48 lines (40 loc) 1.35 kB
import { Indicator } from '@/lib/Indicator' import ta from 'technicalindicators' import { StochasticRSIOutput } from 'technicalindicators/declarations/momentum/StochasticRSI' export class StockRSI extends Indicator { public dPeriod: number = 9 public kPeriod: number = 12 public rsiPeriod: number = 14 public stochasticPeriod: number = 16 constructor(key: string, options: StockRSIOptions) { super({ name: 'Bollinger Bands', key: key, description: 'Boillinger Bands.', }) if (options.dPeriod) this.dPeriod = options.dPeriod if (options.kPeriod) this.kPeriod = options.kPeriod if (options.rsiPeriod) this.rsiPeriod = options.rsiPeriod if (options.stochasticPeriod) this.stochasticPeriod = options.stochasticPeriod } generate(): StochasticRSIOutput[] { const values = this.data .map((update) => update[4]) .filter((value): value is number => value !== undefined) const stochRSI = ta.StochasticRSI.calculate({ values, dPeriod: this.dPeriod, kPeriod: this.kPeriod, rsiPeriod: this.rsiPeriod, stochasticPeriod: this.stochasticPeriod, }) return stochRSI } } export interface StockRSIOptions { dPeriod: number kPeriod: number rsiPeriod: number stochasticPeriod: number }