UNPKG

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
/** * 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