export { MA } from './ma.js'; export { BaseIndicator } from './base.js'; export { HTSIndicator } from './hts.js'; export { MAIndicator } from './ma_indicator.js'; export { RSIIndicator } from './rsi.js'; export { BollingerBandsIndicator } from './bb.js'; export { MACDIndicator } from './macd.js'; export { StochasticIndicator } from './stoch.js'; export { ATRIndicator } from './atr.js'; import { HTSIndicator } from './hts.js'; import { MAIndicator } from './ma_indicator.js'; import { RSIIndicator } from './rsi.js'; import { BollingerBandsIndicator } from './bb.js'; import { MACDIndicator } from './macd.js'; import { StochasticIndicator } from './stoch.js'; import { ATRIndicator } from './atr.js'; export const IndicatorRegistry = { hts: HTSIndicator, ma: MAIndicator, rsi: RSIIndicator, bb: BollingerBandsIndicator, macd: MACDIndicator, stoch: StochasticIndicator, atr: ATRIndicator }; /** * Dynamically build the available indicators list from the registry. * Each indicator class provides its own name and description via getMetadata(). */ export function getAvailableIndicators() { return Object.entries(IndicatorRegistry).map(([type, IndicatorClass]) => { const instance = new IndicatorClass({ type, params: {}, name: '' }); const meta = instance.getMetadata(); return { type, name: meta.name || type.toUpperCase(), description: meta.description || '' }; }); }