Skip to main content

finance_solution/stocks/
mod.rs

1//! Ordered **price-path** analytics (equities or any positive price series).
2//!
3//! # Layers
4//!
5//! | Layer | API | Purpose |
6//! |-------|-----|---------|
7//! | Scalars | [`simple_return`], [`volatility`], [`beta`], … | One-off metrics |
8//! | Solution | [`price_path_solution`] | Summary stats + formulas for a full path |
9//! | Series | [`PricePathSolution::series`] | Period detail (return, wealth, drawdown) |
10//! | Tables | [`PricePathSeries::print_table`] | Terminal / copy-paste output |
11//! | **TA** | [`ta`] — SMA/EMA/WMA/HMA/Stoch/MACD/BB/KC/Donchian/VWAP/RVOL/RSI/ATR/LinReg + `*State` | Batch series + incremental push |
12//!
13//! # Error handling (v0.1+)
14//!
15//! Public scalars and [`price_path_solution`] return [`crate::FinanceResult`].
16//! Empty series, non-positive prices, length mismatches, and zero volatility cases are
17//! structured [`crate::FinanceError`] values — not panics.
18//! Prefer composing with `?` when prices come from users or external data.
19pub mod path;
20pub mod returns;
21pub mod risk;
22pub mod ta;
23
24#[doc(inline)]
25pub use path::*;
26#[doc(inline)]
27pub use returns::*;
28#[doc(inline)]
29pub use risk::*;
30// TA: re-export common entry points; full surface under `stocks::ta`.
31#[doc(inline)]
32pub use ta::{
33    atr, atr_solution, bollinger, bollinger_solution, donchian, donchian_solution, ema, ema_last,
34    hma, hma_last, keltner, keltner_solution, linear_regression, linear_regression_solution, macd,
35    macd_solution, rsi, rsi_solution, rvol, rvol_solution, sma, sma_last, stochastics,
36    stochastics_solution, vwap, vwap_solution, wma, wma_last, AtrParams, AtrSeries, AtrSolution,
37    AtrState, BollingerBarOutput, BollingerParams, BollingerSeries, BollingerSolution,
38    BollingerState, DonchianBarOutput, DonchianParams, DonchianSeries, DonchianSolution,
39    DonchianState, EmaState, HmaState, KeltnerBarOutput, KeltnerParams, KeltnerSeries,
40    KeltnerSolution, KeltnerState, LinRegBar, LinRegParams, LinRegSolution, LinRegState,
41    MacdParams, MacdSeries, MacdSolution, MacdState, RsiParams, RsiSeries, RsiSolution, RsiState,
42    RvolParams, RvolSeries, RvolSolution, RvolState, SmaState, StdevKind, StochBarOutput,
43    StochState, StochasticParams, StochasticSeries, StochasticSolution, ValidatedAtr,
44    ValidatedBollinger, ValidatedDonchian, ValidatedKeltner, ValidatedLinReg, ValidatedMacd,
45    ValidatedRsi, ValidatedRvol, ValidatedStochastic, ValidatedVwap, VwapMode, VwapParams,
46    VwapPriceSource, VwapSeries, VwapSolution, VwapState, WmaState,
47};