a3a1ae4dba
Adds ten pairwise `(f64, f64)` indicators to the **Price Statistics** family, completing the A1 stat-arb expansion block.
## Indicators
**Scalar output:**
- **RollingCorrelation** — rolling Pearson correlation of period-over-period *returns* (distinct from level-based `PearsonCorrelation`).
- **RollingCovariance** — rolling covariance of returns.
- **OuHalfLife** — Ornstein–Uhlenbeck half-life of mean reversion of the spread `a − b`.
- **SpreadHurst** — Hurst exponent of the spread (variance-of-lagged-differences fit) for regime detection.
- **DistanceSsd** — Gatev sum-of-squared-deviations between two start-normalised series.
- **BetaNeutralSpread** — rolling OLS regression residual `a − (α + β·b)`.
- **VarianceRatio** — Lo–MacKinlay variance-ratio test on the spread (two params: `period`, `q`).
- **GrangerCausality** — F-statistic for whether `b` predicts `a` (two params: `period`, `lag`).
**Struct output (custom bindings):**
- **KalmanHedgeRatio** — dynamic hedge ratio via a Kalman filter → `{ hedgeRatio, intercept, spread }`.
- **SpreadBollingerBands** — Bollinger bands on the spread → `{ middle, upper, lower, percentB }`.
## Notes
- No new traits or input families: all use the native `Indicator<Input = (f64, f64)>` (precedent `Beta`, `Cointegration`).
- Adds `Error::InvalidParameter` for floating-point constructor parameters (Kalman `delta`/`observation_var`, `num_std`).
- Full Python/Node/WASM bindings; the two struct-output indicators are hand-written, the rest use the pair macros.
- Indicator count 315 → 325; README, family rows, `__init__`, fuzz target, and CHANGELOG updated.
## Verification
- `cargo test --workspace --all-features` — green (2676 core lib + 308 doc).
- `cargo clippy --workspace --all-targets --all-features -- -D warnings` — clean.
- Node: `npm run build && npm test` — 410 passing (`index.d.ts`/`index.js` regenerated).
- Python: `pytest` — 684 passing.
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Documentation
|
|
|
|
Wickra's full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**.
|
|
|
|
That includes:
|
|
|
|
- **Quickstarts** for [Rust](https://docs.wickra.org/Quickstart-Rust),
|
|
[Python](https://docs.wickra.org/Quickstart-Python),
|
|
[Node](https://docs.wickra.org/Quickstart-Node), and
|
|
[WASM](https://docs.wickra.org/Quickstart-WASM).
|
|
- A per-indicator deep dive for every one of the **325 indicators** across
|
|
the sixteen families (Moving Averages, Momentum Oscillators, Trend &
|
|
Directional, Price Oscillators, Volatility & Bands, Bands & Channels,
|
|
Trailing Stops, Volume, Price Statistics, Ehlers / Cycle DSP, Pivots &
|
|
S/R, DeMark, Ichimoku & Charts, Candlestick Patterns, Market Profile,
|
|
Risk / Performance) — see the
|
|
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
|
- **Reference pages**: [warmup periods](https://docs.wickra.org/Warmup-Periods),
|
|
[streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
|
|
[indicator chaining](https://docs.wickra.org/Indicator-Chaining), and the
|
|
[data layer](https://docs.wickra.org/Data-Layer).
|
|
- **Guides**: [Cookbook](https://docs.wickra.org/Cookbook),
|
|
[TA-Lib migration](https://docs.wickra.org/TA-Lib-Migration),
|
|
[FAQ](https://docs.wickra.org/FAQ).
|
|
|
|
## Editing the docs
|
|
|
|
The documentation site is a separate git repository at
|
|
`https://github.com/wickra-lib/wickra-docs`. Open a pull request there to
|
|
propose changes; the site is built with VitePress and deploys to
|
|
`docs.wickra.org`.
|