Skip to content

PyTechnicalIndicators Banner

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

See full API Reference


📖 Documentation


🗂️ Source Code

Find PyTechnicalIndicators source code on GitHub.


🤝 Community & Contributing


📄 License

MIT License