High-performance vectorized Pine Script indicators for ML and backtesting
Project description
PythonPine v2.0 - High-Performance Technical Indicators
Vectorized Pine Script indicators for machine learning and algorithmic trading. 10-100x faster than loop-based implementations.
Features
- ⚡ NumPy/Pandas Vectorization - Millions of bars in seconds
- 🧠 ML Alpha Module - Z-score, percentile rank, fractional differentiation
- 📊 50+ Indicators - RSI, MACD, ATR, Bollinger, SuperTrend, Ichimoku...
- 🔄 Pine Script Parity - Same signatures, same math
- 📈 Price Action - Vectorized pattern detection
Installation
pip install pythonpine
Quick Start
import numpy as np
from pythonpine import rsi, macd, atr, zscore
# Your price data
close = np.random.randn(10000).cumsum() + 100
high = close + np.abs(np.random.randn(10000)) * 0.5
low = close - np.abs(np.random.randn(10000)) * 0.5
# Calculate indicators (returns NumPy arrays)
rsi_values = rsi(close, 14)
macd_line, signal, hist = macd(close)
atr_values = atr(high, low, close, 14)
# ML preprocessing
rsi_zscore = zscore(rsi_values, 20) # Normalized for ML
ML Alpha Module
from pythonpine import zscore, percentile_rank, log_returns, fractional_diff
# Stationarity transforms
returns = log_returns(close)
frac_diff = fractional_diff(close, d=0.4) # López de Prado method
# Feature engineering
rsi_z = zscore(rsi(close), 50) # Z-score normalized RSI
rsi_rank = percentile_rank(rsi(close), 100) # Percentile rank
Benchmarks
| Indicator | Legacy (loop) | V2 (vectorized) | Speedup |
|---|---|---|---|
| RSI | 1.2s | 0.01s | 120x |
| MACD | 0.8s | 0.008s | 100x |
| ATR | 0.5s | 0.005s | 100x |
| Bollinger | 0.9s | 0.007s | 130x |
Tested on 1M bars
Indicator Reference
Momentum
rsi(close, 14)- Relative Strength Indexmacd(close, 12, 26, 9)- MACD line, signal, histogramstochastic(close, high, low)- Stochastic Oscillatoradx(high, low, close)- Average Directional Indexcci(close, high, low)- Commodity Channel Index
Volatility
atr(high, low, close, 14)- Average True Rangebollinger_bands(close, 20, 2)- Upper, lower, middlekeltner_channel(high, low, close)- Keltner bandshistorical_volatility(close, 20)- HV annualized
Trend
sma(close, 20)- Simple Moving Averageema(close, 20)- Exponential MAsupertrend(high, low, close)- Trend direction + lineichimoku(high, low, close)- Full cloud
Price Action
engulfing(o, h, l, c)- Returns +1 (bullish), -1 (bearish), 0doji(o, h, l, c)- Doji detectionsupport_resistance_zones(h, l, c, v)- Volume-based S/R
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
pythonpine-2.0.1.tar.gz
(38.5 kB
view details)
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 pythonpine-2.0.1.tar.gz.
File metadata
- Download URL: pythonpine-2.0.1.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f3ed454c3651e765e31357821ffdf6b550c6060f54c213abd2cf7111f659bed
|
|
| MD5 |
20a4c803de6168ac85cf34d4dba1cce3
|
|
| BLAKE2b-256 |
5e99cf4df3f6731e341eaad140e6dae4038234d57a4a70f20662addc27587cee
|
File details
Details for the file pythonpine-2.0.1-py3-none-any.whl.
File metadata
- Download URL: pythonpine-2.0.1-py3-none-any.whl
- Upload date:
- Size: 43.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
262c436d4854dcc381307fa018cf39493561abcf3a12e1af996fbd4b9f941ed0
|
|
| MD5 |
cd933f74167637c50c82ab6bf318df75
|
|
| BLAKE2b-256 |
eee9e8f6e3454b6326b9a532a538d8992c4cdf9bd6524c1530b4be77df53dfc3
|