meridianalgo-js
Version:
Advanced algorithmic trading library for Node.js & TypeScript with 100+ technical indicators, pattern recognition, and risk management tools.
172 lines • 6.31 kB
TypeScript
/**
* Momentum Technical Indicators
*
* This module provides momentum-based technical analysis indicators including
* Rate of Change, Momentum, Chande Momentum Oscillator, and other momentum metrics.
*
* @fileoverview Momentum indicators for technical analysis
* @author MeridianAlgo
* @version 1.0.0
*/
/**
* Rate of Change (ROC)
*
* ROC measures the percentage change in price over a specified period.
* It's a pure momentum oscillator that shows the speed of price change.
*
* @param prices - Array of price data
* @param period - Number of periods for calculation (default: 10)
* @returns Array of ROC values as percentages
*
* @example
* ```typescript
* const prices = [100, 102, 101, 103, 105, 104, 106];
* const roc = MomentumIndicators.roc(prices, 5);
* ```
*/
export declare function roc(prices: number[], period?: number): number[];
/**
* Momentum
*
* Momentum measures the rate of change in prices over a specified period.
* It's similar to ROC but shows the actual price difference rather than percentage.
*
* @param prices - Array of price data
* @param period - Number of periods for calculation (default: 10)
* @returns Array of momentum values
*/
export declare function momentum(prices: number[], period?: number): number[];
/**
* Chande Momentum Oscillator (CMO)
*
* CMO is a momentum oscillator that measures the momentum on both up and down days.
* It ranges from -100 to +100 and can identify overbought/oversold conditions.
*
* @param prices - Array of price data
* @param period - Number of periods for calculation (default: 14)
* @returns Array of CMO values
*/
export declare function cmo(prices: number[], period?: number): number[];
/**
* Relative Vigor Index (RVI)
*
* RVI measures the conviction of a recent price action by comparing closing prices
* to the trading range and smoothing the result with a moving average.
*
* @param open - Array of opening prices
* @param high - Array of high prices
* @param low - Array of low prices
* @param close - Array of closing prices
* @param period - Number of periods for calculation (default: 10)
* @returns Object containing RVI and signal line
*/
export declare function rvi(open: number[], high: number[], low: number[], close: number[], period?: number): {
rvi: number[];
signal: number[];
};
/**
* Percentage Price Oscillator (PPO)
*
* PPO is similar to MACD but uses percentage instead of absolute values.
* It shows the percentage difference between two moving averages.
*
* @param prices - Array of price data
* @param fastPeriod - Fast moving average period (default: 12)
* @param slowPeriod - Slow moving average period (default: 26)
* @param signalPeriod - Signal line period (default: 9)
* @returns Object containing PPO line, signal line, and histogram
*/
export declare function ppo(prices: number[], fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
ppo: number[];
signal: number[];
histogram: number[];
};
/**
* Percentage Volume Oscillator (PVO)
*
* PVO measures the percentage difference between two volume moving averages.
* It helps identify volume trends and potential reversals.
*
* @param volume - Array of volume values
* @param fastPeriod - Fast moving average period (default: 12)
* @param slowPeriod - Slow moving average period (default: 26)
* @param signalPeriod - Signal line period (default: 9)
* @returns Object containing PVO line, signal line, and histogram
*/
export declare function pvo(volume: number[], fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
pvo: number[];
signal: number[];
histogram: number[];
};
/**
* Detrended Price Oscillator (DPO)
*
* DPO removes the trend from prices, making it easier to identify cycles
* and overbought/oversold conditions.
*
* @param prices - Array of price data
* @param period - Number of periods for calculation (default: 20)
* @returns Array of DPO values
*/
export declare function dpo(prices: number[], period?: number): number[];
/**
* Chande Forecast Oscillator
*
* The Chande Forecast Oscillator is based on linear regression analysis.
* It helps identify trend changes and potential reversals.
*
* @param prices - Array of price data
* @param period - Number of periods for calculation (default: 14)
* @returns Array of forecast oscillator values
*/
export declare function chandeForecastOscillator(prices: number[], period?: number): number[];
/**
* Coppock Curve
*
* The Coppock Curve is a momentum indicator that uses rate of change
* to identify long-term buying opportunities.
*
* @param prices - Array of price data
* @param roc1Period - First ROC period (default: 14)
* @param roc2Period - Second ROC period (default: 11)
* @param wmaPeriod - WMA smoothing period (default: 10)
* @returns Array of Coppock Curve values
*/
export declare function coppockCurve(prices: number[], roc1Period?: number, roc2Period?: number, wmaPeriod?: number): number[];
/**
* KST Oscillator (Know Sure Thing)
*
* KST is a momentum oscillator that combines multiple rate of change indicators
* with different time periods to create a comprehensive momentum signal.
*
* @param prices - Array of price data
* @param roc1 - First ROC period (default: 10)
* @param roc2 - Second ROC period (default: 15)
* @param roc3 - Third ROC period (default: 20)
* @param roc4 - Fourth ROC period (default: 30)
* @param sma1 - First SMA period (default: 10)
* @param sma2 - Second SMA period (default: 10)
* @param sma3 - Third SMA period (default: 10)
* @param sma4 - Fourth SMA period (default: 15)
* @returns Object containing KST and signal line
*/
export declare function kst(prices: number[], roc1?: number, roc2?: number, roc3?: number, roc4?: number, sma1?: number, sma2?: number, sma3?: number, sma4?: number): {
kst: number[];
signal: number[];
};
/**
* Collection of momentum-based technical indicators
*/
export declare const MomentumIndicators: {
roc: typeof roc;
momentum: typeof momentum;
cmo: typeof cmo;
rvi: typeof rvi;
ppo: typeof ppo;
pvo: typeof pvo;
dpo: typeof dpo;
chandeForecastOscillator: typeof chandeForecastOscillator;
coppockCurve: typeof coppockCurve;
kst: typeof kst;
};
//# sourceMappingURL=momentum.d.ts.map