Skip to main content

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:

  1. Math > Magic: Implementations are based on standard textbook formulas (Wilder, Lane, Bollinger).
  2. Simple > Fancy: A pure functional API. Input arrays, output arrays. No complex classes.
  3. 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.
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

v1indicators-0.2.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

v1indicators-0.2.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

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

Hashes for v1indicators-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c184a9bfe4c2cd9ea3c1df618f8bbc0ee433426e5dbc3279fa2f8792e16ff952
MD5 2555fe4ea975889c6756757cd0fd0ba6
BLAKE2b-256 bb44537751a4baeba0522cc3f7562a3927d1f3a12c63e51022d4d4f567de10fc

See more details on using hashes here.

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

Hashes for v1indicators-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6628d973834837d92afd679c45b45e5f8383d0ab40853ce57d0b0217827d9998
MD5 0aa5391010dad276abf190b5d2282b67
BLAKE2b-256 133d22e6f0ef636ddebf1f22010dbe2280ff2b50acb833da49b29bbf48ecfae8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page