/** * Velo Plot - Financial/Technical Indicators Module * * Provides common financial and technical analysis indicators: * - Moving Averages (SMA, EMA, WMA) * - Momentum Indicators (RSI, MACD, Stochastic) * - Volatility (Bollinger Bands, ATR) * - Volume (VWAP, OBV) * - Trend (ADX, Aroon) * * @module indicators */ export interface IndicatorResult { /** Indicator values (NaN for insufficient data) */ values: Float32Array; /** Additional line (e.g., signal line for MACD) */ signal?: Float32Array; /** Upper band (e.g., Bollinger upper) */ upper?: Float32Array; /** Lower band (e.g., Bollinger lower) */ lower?: Float32Array; /** Histogram (e.g., MACD histogram) */ histogram?: Float32Array; } export interface OHLCData { open: Float32Array | Float64Array; high: Float32Array | Float64Array; low: Float32Array | Float64Array; close: Float32Array | Float64Array; volume?: Float32Array | Float64Array; } /** * Simple Moving Average (SMA) * @param data Input data array * @param period Number of periods */ export declare function sma(data: Float32Array | Float64Array | number[], period: number): Float32Array; /** * Exponential Moving Average (EMA) * @param data Input data array * @param period Number of periods */ export declare function ema(data: Float32Array | Float64Array | number[], period: number): Float32Array; /** * Weighted Moving Average (WMA) * @param data Input data array * @param period Number of periods */ export declare function wma(data: Float32Array | Float64Array | number[], period: number): Float32Array; /** * Double Exponential Moving Average (DEMA) * @param data Input data array * @param period Number of periods */ export declare function dema(data: Float32Array | Float64Array | number[], period: number): Float32Array; /** * Triple Exponential Moving Average (TEMA) * @param data Input data array * @param period Number of periods */ export declare function tema(data: Float32Array | Float64Array | number[], period: number): Float32Array; /** * Relative Strength Index (RSI) * @param data Close prices * @param period RSI period (default: 14) */ export declare function rsi(data: Float32Array | Float64Array | number[], period?: number): Float32Array; /** * Moving Average Convergence Divergence (MACD) * @param data Close prices * @param fastPeriod Fast EMA period (default: 12) * @param slowPeriod Slow EMA period (default: 26) * @param signalPeriod Signal line period (default: 9) */ export declare function macd(data: Float32Array | Float64Array | number[], fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): IndicatorResult; /** * Stochastic Oscillator * @param ohlc OHLC data * @param kPeriod %K period (default: 14) * @param dPeriod %D smoothing period (default: 3) */ export declare function stochastic(ohlc: OHLCData, kPeriod?: number, dPeriod?: number): IndicatorResult; /** * Rate of Change (ROC) * @param data Close prices * @param period ROC period (default: 10) */ export declare function roc(data: Float32Array | Float64Array | number[], period?: number): Float32Array; /** * Momentum * @param data Close prices * @param period Momentum period (default: 10) */ export declare function momentum(data: Float32Array | Float64Array | number[], period?: number): Float32Array; /** * Bollinger Bands * @param data Close prices * @param period SMA period (default: 20) * @param stdDev Standard deviation multiplier (default: 2) */ export declare function bollingerBands(data: Float32Array | Float64Array | number[], period?: number, stdDev?: number): IndicatorResult; /** * Average True Range (ATR) * @param ohlc OHLC data * @param period ATR period (default: 14) */ export declare function atr(ohlc: OHLCData, period?: number): Float32Array; /** * Standard Deviation * @param data Input data * @param period Period for calculation (default: 20) */ export declare function standardDeviation(data: Float32Array | Float64Array | number[], period?: number): Float32Array; /** * Volume Weighted Average Price (VWAP) * @param ohlc OHLC data with volume */ export declare function vwap(ohlc: OHLCData): Float32Array; /** * On-Balance Volume (OBV) * @param close Close prices * @param volume Volume data */ export declare function obv(close: Float32Array | Float64Array | number[], volume: Float32Array | Float64Array | number[]): Float32Array; /** * Average Directional Index (ADX) * @param ohlc OHLC data * @param period ADX period (default: 14) */ export declare function adx(ohlc: OHLCData, period?: number): IndicatorResult; /** * Aroon Indicator * @param ohlc OHLC data * @param period Aroon period (default: 25) */ export declare function aroon(ohlc: OHLCData, period?: number): IndicatorResult; /** * Calculate percentage change */ export declare function percentChange(data: Float32Array | Float64Array | number[], period?: number): Float32Array; /** * Calculate cumulative sum */ export declare function cumsum(data: Float32Array | Float64Array | number[]): Float32Array; /** * Normalize data to 0-100 range */ export declare function normalize(data: Float32Array | Float64Array | number[]): Float32Array;