UNPKG

@4ex/indicators

Version:

Technical indicators for ohlc charts written in TypeScript

70 lines (69 loc) 3.22 kB
import { MACD as MACDIndicator } from 'technicalindicators'; import { OHLC, OHLCEnum } from '../types'; import { IndicatorInput, Indicator } from './base-indicator'; export interface MovingAverageConvergenceDivergenceInput extends IndicatorInput { source?: OHLCEnum; signalPeriod?: number; fastPeriod?: number; slowPeriod?: number; simpleMAOscillator?: boolean; simpleMASignal?: boolean; } export interface MovingAverageConvergenceDivergenceOutput { MACD?: number; signal?: number; histogram?: number; } /** * Moving average convergence divergence (MACD) is a trend-following momentum * indicator that shows the relationship between two moving averages of a * security’s price. The MACD is calculated by subtracting the 26-period * exponential moving average (EMA) from the 12-period EMA. The result of that * calculation is the MACD line. A nine-day EMA of the MACD called the * "signal line," is then plotted on top of the MACD line, which can function * as a trigger for buy and sell signals. Traders may buy the security when the * MACD crosses above its signal line and sell—or short—the security when the * MACD crosses below the signal line. Moving average convergence divergence * (MACD) indicators can be interpreted in several ways, but the more common * methods are crossovers, divergences, and rapid rises/falls. */ export declare class MACD implements Indicator { indicator: MACDIndicator; source: OHLCEnum; /** * * @param {OHLC[]} series candle series * @param {OHLCEnum} source source values from candle * @param {number} fastPeriod * @param {number} slowPeriod * @param {number} signalPeriod signal line period * @param {boolean} simpleMAOscillator use simple MA for Oscillator * @param {boolean} simpleMASignal use simple MA for Signal */ constructor(series: OHLC[], source?: OHLCEnum, fastPeriod?: number, slowPeriod?: number, signalPeriod?: number, simpleMAOscillator?: boolean, simpleMASignal?: boolean); /** * Retrieve MACD values for instance * @return {MovingAverageConvergenceDivergenceOutput[]} values for instance * data */ getResults(): MovingAverageConvergenceDivergenceOutput[]; /** * Calculate MACD to next tick * @param {OHLC} candle new candle to add to series * @return {MovingAverageConvergenceDivergenceOutput | undefined} next MACD * value or undefined if period is greater than actual series length */ next(candle: OHLC): MovingAverageConvergenceDivergenceOutput | undefined; /** * Create instance from data * @param {MovingAverageConvergenceDivergenceInput} input input data * @return {MACD} MACD instance */ static generator({ series, source, fastPeriod, slowPeriod, signalPeriod, simpleMAOscillator, simpleMASignal, }: MovingAverageConvergenceDivergenceInput): MACD; /** * Get MACD values from input * @param {MovingAverageConvergenceDivergenceInput} input input data * @return {MovingAverageConvergenceDivergenceOutput[]} MACD values */ static calculate(input: MovingAverageConvergenceDivergenceInput): MovingAverageConvergenceDivergenceOutput[]; }