/** * Shared technical indicator utilities for scanner implementations. * * All functions are pure and operate on numeric arrays. */ /** * Computes the Exponential Moving Average for a series of close prices. * Returns the full EMA array (same length as input). */ export declare function computeEma(closes: number[], period: number): number[]; /** * Computes the Relative Strength Index for a series of close prices. * * Uses the standard smoothed (Wilder's) method: initial average over * the first `period` changes, then exponential smoothing for subsequent. * * @returns RSI value (0-100) for the latest bar, or `null` if insufficient data. */ export declare function computeRsi(closes: number[], period?: number): number | null; /** * Detects higher-highs / lower-lows pattern in a price series. * * Looks at local swing points (local maxima for highs, local minima for lows) * across the lookback window. Returns a score: * - Positive → higher-highs + higher-lows (bullish structure) * - Negative → lower-highs + lower-lows (bearish structure) * - Near zero → mixed / no clear structure * * @returns Score in [-1, 1]. */ export declare function detectSwingPattern(highs: number[], lows: number[], lookback?: number): number; /** * Computes the ratio of recent volume to average volume. * * @param volumes - Volume array (chronological). * @param recentBars - Number of recent bars to average for "current" volume. * @returns Ratio (e.g. 1.5 = 50% above average). Returns 0 if insufficient data. */ export declare function volumeRatio(volumes: number[], recentBars?: number): number; //# sourceMappingURL=indicators.d.ts.map