Update version numbers across Rust, Python, and documentation files to 1.1.0. Enhance the .gitignore to include macOS dSYM files and plans directory. Introduce new dependencies in the Rust core library and update the README to reflect recent performance benchmarks and backtesting engine capabilities. Add new artifacts to the benchmarks manifest and improve documentation for the backtesting engine API.
56 lines
1.3 KiB
Rust
56 lines
1.3 KiB
Rust
/*!
|
|
ferro_ta_core — Pure Rust indicator library.
|
|
|
|
This crate contains all indicator implementations as pure functions operating
|
|
on `&[f64]` slices and returning `Vec<f64>`. It has **no dependency on PyO3
|
|
or numpy** so it can be used from any Rust project, or compiled to WASM /
|
|
Node.js via napi-rs without dragging in Python bindings.
|
|
|
|
The Python wheel (`ferro_ta` PyPI package) is built from a thin binding crate
|
|
that calls into this core and converts NumPy arrays to/from Rust slices.
|
|
|
|
# Two-layer architecture
|
|
|
|
The root crate (`ferro_ta`) contains PyO3 `#[pyfunction]` wrappers that convert
|
|
numpy arrays to `&[f64]` and delegate to this core crate.
|
|
|
|
# Usage (Rust)
|
|
|
|
```rust
|
|
use ferro_ta_core::overlap;
|
|
|
|
let close = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0];
|
|
let sma = overlap::sma(&close, 3);
|
|
assert!(sma[0].is_nan());
|
|
assert!((sma[2] - 2.0).abs() < 1e-10);
|
|
```
|
|
*/
|
|
|
|
pub mod aggregation;
|
|
pub mod alerts;
|
|
pub mod attribution;
|
|
pub mod backtest;
|
|
pub mod batch;
|
|
pub mod chunked;
|
|
pub mod commission;
|
|
pub mod crypto;
|
|
pub mod currency;
|
|
pub mod cycle;
|
|
pub mod extended;
|
|
pub mod futures;
|
|
pub mod math;
|
|
pub mod math_ops;
|
|
pub mod momentum;
|
|
pub mod options;
|
|
pub mod overlap;
|
|
pub mod pattern;
|
|
pub mod portfolio;
|
|
pub mod price_transform;
|
|
pub mod regime;
|
|
pub mod resampling;
|
|
pub mod signals;
|
|
pub mod statistic;
|
|
pub mod streaming;
|
|
pub mod volatility;
|
|
pub mod volume;
|