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.
37 lines (30 loc) • 977 B
text/typescript
import { Indicator } from '@/lib/Indicator'
import { parseIntoRows } from '@/utils/parseOHLCV'
import ta from 'technicalindicators'
export class AwesomeOscillator extends Indicator {
public fastPeriod: number = 14
public slowPeriod: number = 21
constructor(key: string, options: AwesomeOscillatorOptions) {
super({
name: 'Awesome Oscillator',
key: key,
description: 'Awesome Oscillator.',
})
if (options.fastPeriod) this.fastPeriod = options.fastPeriod
if (options.slowPeriod) this.slowPeriod = options.slowPeriod
}
generate(): number[] {
const { highs, lows } = parseIntoRows(this.data)
const awesomeOscillator = ta.AwesomeOscillator.calculate({
fastPeriod: this.fastPeriod,
slowPeriod: this.slowPeriod,
high: highs,
low: lows,
})
return awesomeOscillator
}
}
export interface AwesomeOscillatorOptions {
fastPeriod: number
slowPeriod: number
}