Technical analysis indicators and scanners.
Project description
v1indicators
v1indicators is a professional-grade, high-performance technical analysis library for Python. It is designed to be the "Standard Library" for financial indicators—prioritizing mathematical accuracy, system stability, and zero external bloat.
It is a pure calculation engine. It does not trade, it does not plot, and it does not make promises. It just does the math.
The Philosophy
Existing libraries (ta-lib, pandas-ta, ta) often suffer from one of three problems: dependency hell (C-compilers), abandoned maintenance, or bloated "black box" object hierarchies.
v1indicators solves this by adhering to four rules:
- Math > Magic: Implementations are based on standard textbook formulas (Wilder, Lane, Bollinger).
- Simple > Fancy: A pure functional API. Input arrays, output arrays. No complex classes.
- Hybrid JIT Engine: Recursive indicators (Supertrend, PSAR) are compiled to machine code using Numba (@jit) for C-level speed, while vectorizable logic uses optimized NumPy.
- Reliability: 100% test coverage with strict type validation and fault-tolerance (no silent crashes on empty data).
Installation
Requires Python 3.9+, NumPy, Pandas, and Numba.
pip install .
Quick Start
The API is standardized. All functions accept Pandas Series and return Pandas Series (for single-value indicators) or DataFrames (for multi-value indicators).
import pandas as pd
from v1indicators import rsi, macd, supertrend
# 1. Load your data (Engineering Standard: Lowercase columns)
df = pd.read_csv("data.csv") # Must have 'open', 'high', 'low', 'close', 'volume'
# 2. Simple Indicator (RSI)
# Returns a Series named 'RSI_14'. Handles Zero-Loss (infinite gain) cases safely.
df['RSI'] = rsi(df['close'], length=14)
# 3. Complex Indicator (MACD)
# Returns a DataFrame with 'MACD', 'MACD_SIGNAL', 'MACD_HIST'
macd_df = macd(df['close'], fast=12, slow=26, signal=9)
df = pd.concat([df, macd_df], axis=1)
# 4. Pro Indicator (Supertrend)
# Uses Numba JIT Kernel for high-speed recursive calculation
# Returns 'SUPERTREND' and 'SUPERTREND_DIR'
st_df = supertrend(df['high'], df['low'], df['close'], length=10, mult=3.0)
df = pd.concat([df, st_df], axis=1)
print(df.tail())
Available Indicators
We currently support the "Essential 20"—the indicators used by 90% of professional systematic traders.
Momentum
- RSI (Relative Strength Index) - Zero-Division Safe
- MACD (Moving Average Convergence Divergence)
- Stochastic (Stochastic Oscillator)
- ROC (Rate of Change)
- MFI (Money Flow Index)
- CCI (Commodity Channel Index)
Overlap (Trend Filters)
- SMA (Simple Moving Average)
- EMA (Exponential Moving Average)
- WMA (Weighted Moving Average)
- RMA (Wilder's Smoothing / Running Moving Average)
- Bollinger Bands
- Keltner Channels
- Donchian Channels
- Ichimoku Cloud
Trend (JIT Optimized)
- Supertrend (Numba Accelerated)
- Parabolic SAR (PSAR) (Numba Accelerated)
- ADX (Average Directional Index)
Volatility
- ATR (Average True Range)
Volume
- OBV (On-Balance Volume)
- VWAP (Volume Weighted Average Price)
Levels
- Fibonacci Retracements
Development
We enforce strict engineering standards.
# Install dev dependencies
pip install -e ".[dev]"
# Run the test suite (100% Pass Rate Required)
pytest
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file v1indicators-0.2.0.tar.gz.
File metadata
- Download URL: v1indicators-0.2.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c184a9bfe4c2cd9ea3c1df618f8bbc0ee433426e5dbc3279fa2f8792e16ff952
|
|
| MD5 |
2555fe4ea975889c6756757cd0fd0ba6
|
|
| BLAKE2b-256 |
bb44537751a4baeba0522cc3f7562a3927d1f3a12c63e51022d4d4f567de10fc
|
File details
Details for the file v1indicators-0.2.0-py3-none-any.whl.
File metadata
- Download URL: v1indicators-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6628d973834837d92afd679c45b45e5f8383d0ab40853ce57d0b0217827d9998
|
|
| MD5 |
0aa5391010dad276abf190b5d2282b67
|
|
| BLAKE2b-256 |
133d22e6f0ef636ddebf1f22010dbe2280ff2b50acb833da49b29bbf48ecfae8
|