"""Pure indicator functions (doc 02 §1). Indicators are **pure functions**: they take a price array and parameters and return an array. They must **not** hold state across calls. Strategy code computes signals from these; the engine never calls them. Add your own custom indicators (range filter, regime detector, …) here as the strategy requires. """ from .base import atr, ema, rsi, sma __all__ = ["sma", "ema", "rsi", "atr"]