Indicator Registry
object IndicatorRegistry
Maps DSL indicator names to factory functions that build runtime instances.
Each IndicatorSpec carries the indicator's DSL name (uppercase), the input kind it consumes (numeric series or candle series), the call arity in the DSL (including the leading value/stream argument), and a factory that takes the remaining constant arguments and constructs the indicator.
MACD and Bollinger Bands are multi-output indicators. Each output gets its own DSL name (MACD, MACD_SIGNAL, MACD_HIST / BOLLINGER_UPPER, BOLLINGER_MIDDLE, BOLLINGER_LOWER) and constructs a thin Indicator<BigDecimal> wrapper that delegates to one underlying instance and exposes the desired output.