Python bindings for opendeviationbar: Non-lookahead open deviation bar construction for cryptocurrency trading
Project description
[//]: # SSoT-OK
opendeviationbar-py
High-performance open deviation bar construction for quantitative trading, with Python bindings via PyO3/maturin.
| Resource | URL |
|---|---|
| PyPI | https://pypi.org/project/opendeviationbar/ |
| Repository | https://github.com/terrylica/opendeviationbar-py |
| Performance Dashboard | https://terrylica.github.io/opendeviationbar-py/ |
| API Reference | docs/api/INDEX.md |
| Issues | https://github.com/terrylica/opendeviationbar-py/issues |
Installation
pip install opendeviationbar
Pre-built wheels: Linux (x86_64), macOS (ARM64), Python 3.13. Source build requires Rust toolchain and maturin.
Quick Start
from opendeviationbar import get_open_deviation_bars
# Fetch data and generate open deviation bars in one call
df = get_open_deviation_bars("BTCUSDT", "2024-01-01", "2024-06-30")
# Use with backtesting.py
from backtesting import Backtest, Strategy
bt = Backtest(df, MyStrategy, cash=10000, commission=0.0002)
stats = bt.run()
Output: pandas DataFrame with DatetimeIndex and OHLCV columns, compatible with backtesting.py.
API Overview
| Function | Use Case |
|---|---|
get_open_deviation_bars() |
Date-bounded, auto-fetch |
get_n_open_deviation_bars() |
Exact N bars (ML training) |
process_trades_polars() |
Polars DataFrames (2-3x faster) |
process_trades_chunked() |
Large datasets (>10M trades) |
populate_cache_resumable() |
Long ranges (>30 days) |
run_sidecar() |
Real-time streaming sidecar |
# Count-bounded (ML training)
from opendeviationbar import get_n_open_deviation_bars
df = get_n_open_deviation_bars("BTCUSDT", n_bars=10000)
# Polars (2-3x faster)
import polars as pl
from opendeviationbar import process_trades_polars
bars = process_trades_polars(pl.scan_parquet("trades.parquet"), threshold_decimal_bps=250)
# With microstructure features (57 columns: OFI, Kyle lambda, Hurst, etc.)
df = get_open_deviation_bars("BTCUSDT", "2024-01-01", "2024-06-30", include_microstructure=True)
# Real-time streaming sidecar
from opendeviationbar import run_sidecar, SidecarConfig
config = SidecarConfig(symbol="BTCUSDT", threshold_decimal_bps=250)
run_sidecar(config)
Designed for Claude Code
This repository uses a CLAUDE.md network that provides comprehensive project context for AI-assisted development via Anthropic's Claude Code CLI.
npm install -g @anthropic-ai/claude-code
cd opendeviationbar-py
claude
Claude Code reads the CLAUDE.md files automatically and understands the full architecture, API, build system, and development workflow.
Development
git clone https://github.com/terrylica/opendeviationbar-py.git
cd opendeviationbar-py
mise install # Setup tools (Rust, Python, zig)
mise run build # maturin develop
mise run test # Rust tests
mise run test-py # Python tests
Requirements
Runtime: Python >= 3.13, pandas >= 2.0, numpy >= 1.24, polars >= 1.0
Build: Rust toolchain, maturin >= 1.7
License
MIT License. See LICENSE.
Citation
@software{opendeviationbar-py,
title = {opendeviationbar-py: High-performance open deviation bar construction for quantitative trading},
author = {Terry Li},
url = {https://github.com/terrylica/opendeviationbar-py}
}
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 opendeviationbar-13.35.0.tar.gz.
File metadata
- Download URL: opendeviationbar-13.35.0.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf2b88feb53cec279c58fea05340d5031dec40432197beb687bab98b74fba32a
|
|
| MD5 |
90fc6a9ce2e2ddb0d91e627f048638d2
|
|
| BLAKE2b-256 |
ae4d53b845ea06ca764901cf82c733c917bb1d384ee5bf4208d748c13c5bfeba
|
File details
Details for the file opendeviationbar-13.35.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: opendeviationbar-13.35.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3136e58c225a6146571df3df89bc109768e91e51f694830f5e26b2b4d3a602f1
|
|
| MD5 |
86a404448961ab3b1f7da50c9dcf5749
|
|
| BLAKE2b-256 |
f2191feee73be4b53f7df0db2a729c517cfeb1a317b555ac8b9bb81212d7900f
|