/** * Keltner Channels (KC) Indicator * * Hand-optimized implementation using oakscriptjs. * Volatility-based envelope set above and below an exponential moving average. * Uses ATR (Average True Range) to set channel distance. */ import { type IndicatorResult, type InputConfig, type PlotConfig, type Bar, type SourceType } from 'oakscriptjs'; /** * Keltner Channels indicator input parameters */ export interface KeltnerInputs { /** EMA period length */ length: number; /** ATR multiplier */ mult: number; /** Price source */ src: SourceType; /** Use exponential MA (true) or simple MA (false) */ useEMA: boolean; /** Bands style: ATR, True Range, or Range */ bandsStyle: 'Average True Range' | 'True Range' | 'Range'; /** ATR period length */ atrLength: number; } /** * Default input values matching TradingView defaults */ export declare const defaultInputs: KeltnerInputs; /** * Input configuration for UI */ export declare const inputConfig: InputConfig[]; /** * Plot configuration - order matches CSV: Upper, Basis, Lower */ export declare const plotConfig: PlotConfig[]; /** * Indicator metadata */ export declare const metadata: { title: string; shortTitle: string; overlay: boolean; }; /** * Calculate Keltner Channels indicator * * @param bars - OHLCV bar data * @param inputs - Indicator parameters (optional, uses defaults) * @returns Indicator result with plot data */ export declare function calculate(bars: Bar[], inputs?: Partial): IndicatorResult; /** * Keltner Channels indicator module */ export declare const KeltnerChannels: { calculate: typeof calculate; metadata: { title: string; shortTitle: string; overlay: boolean; }; defaultInputs: KeltnerInputs; inputConfig: InputConfig[]; plotConfig: PlotConfig[]; }; //# sourceMappingURL=keltner.d.ts.map