Expand description
§Algotrading Library
High-performance quantitative trading primitives optimized for AWS EC2.
§Design Philosophy
- f64 only: Financial precision is non-negotiable
- Stack allocated: Const generics, zero heap allocations
- SIMD optimized: AVX2 baseline (all modern EC2 instances)
- Cache-friendly: 64-byte alignment, structure-of-arrays layout
§Modules
stats: Rolling statistics, PDF estimationprobability: Mahalanobis distance, kernel density, empirical CDFfilters: Kalman filters for state estimationregime: Markov switching, HMMdata: Data quality checks and validationmatrix: Linear algebra operations (Cholesky, Eigen, SVD, etc.)options: Black-Scholes pricing, Greeks, implied volatilityrisk: VaR, Sharpe ratio, drawdown, Kelly criterionta: Technical indicators (MACD, RSI, Bollinger Bands, etc.)
§Performance Targets (c6i.xlarge)
- Rolling stats: ~2.5ns per update
- KDE density eval: ~50ns
- Mahalanobis distance: ~20ns
- Markov update: ~15ns
- Batch (4-wide SIMD): ~8ns per series
§Example
use algotrading::prelude::*;
// Stack-allocated, 300-sample window
let mut stats = RollingStats::<f64, 300>::new();
let (mean, std) = stats.update(0.001);
// Regime detection
let mut regime = MarkovSwitching::spy_default();
regime.update(mean);
if regime.is_volatile(0.8) {
println!("Market is volatile!");
}Modules§
- core
- Core data structures and primitives
- data
- filters
- matrix
- numeric
- options
- prelude
- Common imports
- probability
- regime
- risk
- stats
- Statistical computations with optional SIMD acceleration
- ta
- Technical indicators with optional SIMD acceleration
Macros§
- impl_
default_ numeric - Macro to implement Default for generic numeric structs
- init_
array - Create a new generic instance with proper initialization
- numeric_
aliases - Macro to create type aliases for scalar and SIMD versions
- numeric_
struct - Macro to create a generic version of an existing struct with numeric fields