Skip to main content

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.

PyPI License: MIT Python

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

opendeviationbar-13.11.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

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

opendeviationbar-13.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

opendeviationbar-13.11.2-cp313-cp313-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

File details

Details for the file opendeviationbar-13.11.2.tar.gz.

File metadata

  • Download URL: opendeviationbar-13.11.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for opendeviationbar-13.11.2.tar.gz
Algorithm Hash digest
SHA256 60f1af848e5635668c6206a6843d65b6131795f3003579bb2d4dfe2f7fff87c1
MD5 46487126802bce3bf1ebb3223bda04da
BLAKE2b-256 6de5d21629feea7de47283c02d29e44d0e21881be4749f80413f40a2d07a99d5

See more details on using hashes here.

File details

Details for the file opendeviationbar-13.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opendeviationbar-13.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdf5abe1c7d8c90d1cfcf0e0ed5b087b371e7f6bd5d473076d2216e1b2cc0eb2
MD5 9508980e8486cb3ac0ee8eee53371ea8
BLAKE2b-256 aaea6f6a988b00efbb46b80be30d487eb476e354ac175f1b4be4ce0a66a933e7

See more details on using hashes here.

File details

Details for the file opendeviationbar-13.11.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opendeviationbar-13.11.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c7a020239d0e494777f96304f669a1cde20c507a15c6679f9e5afb0c8caa152
MD5 c5d3b3080bcb75d0cedac861573a6f2b
BLAKE2b-256 151d25b1b0f82c4fd86b0606e701d51effe8a83916d9745a41821d30fad3ef84

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