PyTechnicalIndicators
Fast, configurable technical indicators for Python — powered by Rust.
PyTechnicalIndicators is a Python library delivering technical analysis with the speed and safety of Rust.
Built for quants, traders, and developers who demand robust, high-performance financial analytics.
🚀 Features
- Fast: Rust-powered core for microsecond-level performance.
- Comprehensive: 60+ indicators, from classics (RSI, MACD, SMA) to advanced (McGinley, Ulcer).
- Configurable: Most indicators offer multiple calculation models, rolling/bulk or single/scalar outputs.
- Research-Ready: Designed for backtesting, data science, and live analytics.
- Easy to use: Consistent API, pandas-friendly, works in Jupyter.
⚡ Quickstart
Install:
pip install pytechnicalindicators
First indicator:
import pytechnicalindicators as pti
prices = [100.2, 100.46, 100.53, 100.38, 100.19]
ma = pti.moving_average(prices, "simple")
print(f"Simple Moving Average: {ma}")
📚 Indicator Coverage
PyTechnicalIndicators covers:
- Standard: SMA, EMA, Bollinger Bands, MACD, RSI
- Candle: Ichimoku Cloud, Moving Constant Bands, Donchian, Keltner, Supertrend
- Momentum: Chaikin Oscillator, CCI, MFI, OBV, ROC, Williams %R
- Moving Average: McGinley Dynamic, classic MA types
- Trend: Aroon, Parabolic, TSI, Volume-Price Trend
- Correlation: Asset price correlations
- Strength: Accumulation/Distribution, PVI, NVI, RVI
- Volatility: Ulcer Index, Volatility System
- Other: ROI, ATR, True Range, IBS
📖 Documentation
- Tutorials — Start-to-finish workflows for real-world analysis
- How-To Guides — Task-focused, practical recipes
- API Reference — Full indicator and function docs
- Benchmarks — Performance tables by indicator and dataset size
- Source code — Where the magic happens
🗂️ Source Code
Find PyTechnicalIndicators source code on GitHub.
🤝 Community & Contributing
📄 License
MIT License