@4ex/indicators
Version:
Technical indicators for ohlc charts written in TypeScript
70 lines (69 loc) • 3.22 kB
TypeScript
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[];
}