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.

47 lines (40 loc) 1.42 kB
import { Indicator } from '@/lib/Indicator' import { parseIntoRows } from '@/utils/parseOHLCV' import ta from 'technicalindicators' import { IchimokuCloudOutput } from 'technicalindicators/declarations/ichimoku/IchimokuCloud' export class IchimokuCloud extends Indicator { public basePeriod: number = 9 public conversionPeriod: number = 12 public spanPeriod: number = 16 public displacement: number = 21 constructor(key: string, options: IchimokuCloudOptions) { super({ name: 'Ichimoku Cloud', key: key, description: 'Ichimoku Cloud.', }) if (options.basePeriod) this.basePeriod = options.basePeriod if (options.conversionPeriod) this.conversionPeriod = options.conversionPeriod if (options.spanPeriod) this.spanPeriod = options.spanPeriod if (options.displacement) this.displacement = options.displacement } generate(): IchimokuCloudOutput[] { const { highs, lows } = parseIntoRows(this.data) const ichimoku = ta.IchimokuCloud.calculate({ basePeriod: this.basePeriod, conversionPeriod: this.conversionPeriod, spanPeriod: this.spanPeriod, displacement: this.displacement, high: highs, low: lows, }) return ichimoku } } export interface IchimokuCloudOptions { basePeriod: number conversionPeriod: number spanPeriod: number displacement: number }