//! Technical indicators for RaptorBT.
//!
//! All indicators are implemented as pure functions that take slice inputs
//! and return Vec outputs. NaN values are used for the warmup period.

pub mod ferro_bridge;
pub mod momentum;
pub mod rolling;
pub mod strength;
pub mod tick_features;
pub mod trend;
pub mod volatility;
pub mod volume;

pub use ferro_bridge::{
    AdxAllResult, AroonResult, ChandelierResult, DonchianResult, DrawdownResult, HtPhasorResult,
    HtSineResult, IchimokuResult, PivotPointsResult, PpoResult, ad, adosc, adx_all, aroon,
    aroonosc, apo, avgprice, beta, bop, cci, chandelier_exit, choppiness_index, correl, dema,
    detect_breaks_cusum, donchian, drawdown_series, ht_dcperiod, ht_dcphase, ht_phasor,
    ht_sine, ht_trendline, ht_trendmode, hull_ma, ichimoku, kama, linearreg, linearreg_angle,
    linearreg_intercept, linearreg_slope, medprice, mfi, midpoint, midprice, minus_di, mom,
    natr, obv, pivot_points, plus_di, ppo, ratio, regime_adx, regime_combined,
    relative_strength, roc, rolling_beta, rolling_variance_break, sar, spread, stddev,
    stochrsi, t3, tema, trange, trix, trima, tsf, typprice, ultosc, var, vwma, wclprice, willr,
    wma, zscore_series,
};
pub use momentum::{macd, rsi, stochastic, MacdResult, StochasticResult};
pub use rolling::{rolling_max, rolling_min};
pub use strength::adx;
pub use tick_features::{
    buy_sell_imbalance_delta, oi_position_pct, realized_vol_rolling, return_window, spread_pct,
    tick_velocity,
};
pub use trend::{ema, sma, supertrend, SupertrendResult};
pub use volatility::{atr, bollinger_bands, BollingerBandsResult};
pub use volume::{obv as obv_native, vwap};