F6: add Aroon Oscillator, Vortex and Mass Index

Completes the F6 family (Trend strength) end to end:

- Rust core: aroon_oscillator.rs (AroonUp - AroonDown, one-line trend
  gauge), vortex.rs (Vortex Indicator VI+/VI- with the VortexOutput
  struct), mass_index.rs (Dorsey's range-expansion sum of the
  EMA-of-range ratio). Each with a full Indicator impl, runnable doctest
  and reference / saturation / warmup / reset / batch==streaming tests.
- Python: PyAroonOscillator / PyVortex / PyMassIndex PyO3 classes +
  module registration + .pyi stubs (defaults Aroon=14, Vortex=14,
  MassIndex=(9,25)).
- Node: explicit AroonOscillatorNode, VortexNode (with VortexValue
  object) and MassIndexNode; index.d.ts and index.js updated.
- WASM: WasmAroonOscillator, WasmVortex, WasmMassIndex.
- Wiki: Indicator-AroonOscillator/Vortex/MassIndex.md plus rows in
  Indicators-Overview.md and entries in Home.md.

cargo fmt + clippy (core/wickra/data/wasm/node) clean; 320 core tests,
25 data tests and 45 doctests green.
This commit is contained in:
kingchenc
2026-05-22 18:17:38 +02:00
parent 54148cad5b
commit 16c0639f0c
15 changed files with 1713 additions and 7 deletions
+6
View File
@@ -6,6 +6,7 @@
mod adx;
mod aroon;
mod aroon_oscillator;
mod atr;
mod awesome_oscillator;
mod bollinger;
@@ -20,6 +21,7 @@ mod hma;
mod kama;
mod keltner;
mod macd;
mod mass_index;
mod mfi;
mod mom;
mod obv;
@@ -38,6 +40,7 @@ mod trima;
mod trix;
mod tsi;
mod ultimate_oscillator;
mod vortex;
mod vwap;
mod vwma;
mod williams_r;
@@ -46,6 +49,7 @@ mod zlema;
pub use adx::{Adx, AdxOutput};
pub use aroon::{Aroon, AroonOutput};
pub use aroon_oscillator::AroonOscillator;
pub use atr::Atr;
pub use awesome_oscillator::AwesomeOscillator;
pub use bollinger::{BollingerBands, BollingerOutput};
@@ -60,6 +64,7 @@ pub use hma::Hma;
pub use kama::Kama;
pub use keltner::{Keltner, KeltnerOutput};
pub use macd::{MacdIndicator, MacdOutput};
pub use mass_index::MassIndex;
pub use mfi::Mfi;
pub use mom::Mom;
pub use obv::Obv;
@@ -78,6 +83,7 @@ pub use trima::Trima;
pub use trix::Trix;
pub use tsi::Tsi;
pub use ultimate_oscillator::UltimateOscillator;
pub use vortex::{Vortex, VortexOutput};
pub use vwap::{RollingVwap, Vwap};
pub use vwma::Vwma;
pub use williams_r::WilliamsR;