Quantitative research toolkit for financial markets
Project description
BQuant - Quantitative Research Toolkit
BQuant is a universal toolkit for quantitative research of financial markets. The project starts with MACD zone analysis as the first use case, but the architecture is designed for exploring various aspects: technical indicators, chart patterns, candlestick formations, time series, and machine learning applications.
🔧 Key Features
Zone Analysis - Universal Pipeline v2.1
- Universal API: Works with any indicator (MACD, RSI, AO, custom) through fluent builder pattern
- 5 Detection Strategies: zero_crossing, threshold, line_crossing, preloaded, combined
- Advanced Analysis: Swing, divergence, volume, volatility strategies with automatic feature extraction
- Statistical Testing: Automatic hypothesis tests and clustering analysis
- Caching Support: Performance optimization with memory and disk caching
Core Features
- Universal Configuration System: Flexible settings for data sources, indicators, and analysis
- Extensible Indicator Library: Includes optimized built-in indicators and supports external libraries like
pandas-taandTA-Lib - ML Readiness: A modular structure prepared for future machine learning integration
- Rich Visualization Tools: Create interactive financial charts and statistical plots with Plotly and Matplotlib
- Performance-Oriented: Features a two-level caching system and performance monitoring tools
- Command-Line Interface: Provides a simple CLI for quick analysis and data management
🚀 Quick Start
Installation
# Install in development mode
pip install -e .
# Install with optional dependencies
pip install -e .[dev,notebooks]
Basic Usage - Universal Pipeline v2.1
from bquant.data.samples import get_sample_data
from bquant.analysis.zones import analyze_zones
# Load sample data
data = get_sample_data('tv_xauusd_1h')
# Universal Pipeline - работает с любым индикатором
result = (
analyze_zones(data)
.with_indicator('pandas_ta', 'rsi', length=14)
.detect_zones('threshold', indicator_col='rsi',
upper_threshold=70, lower_threshold=30)
.analyze(clustering=True)
.build()
)
print(f"Found {len(result.zones)} zones")
print(f"Statistics: {result.statistics}")
Legacy MACD Wrapper (Deprecated)
# ⚠️ DEPRECATED: Используйте analyze_zones() вместо этого
from bquant.indicators import MACDZoneAnalyzer
analyzer = MACDZoneAnalyzer() # Deprecated wrapper
result = analyzer.analyze_complete(data) # Delegates to analyze_zones()
pandas-ta indicators in one line
from bquant.indicators import LibraryManager
# Load external libraries (pandas-ta, TA-Lib when installed)
LibraryManager.load_all_libraries()
# "Simple way" to access any pandas-ta indicator discovered dynamically
rsi = LibraryManager.create_indicator('pandas_ta', 'rsi', length=14)
result = rsi.calculate(data)
print(result.data.tail())
See the LibraryManager documentation for more examples.
Command Line
# List available sample datasets
bquant list
# Analyze a dataset using default settings
bquant analyze tv_xauusd_1h
# Analyze and save the chart to a file
bquant analyze mt_xauusd_m15 -o chart.html
📋 Project Structure
This is a monorepo that contains:
bquant/- Python package (for PyPI)research/- Jupyter notebooks and experimentsscripts/- Automation scriptsdata/- Data storagetests/- Test suitedocs/- Documentation
🛠️ Development
Setting up development environment
# Create virtual environment
python -m venv .venv
# Activate (Windows)
.venv\Scripts\activate
# Activate (Linux/Mac)
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Install in development mode with all extras
pip install -e .[full]
Running tests
pytest tests/ -v
📚 Documentation
Universal Pipeline v2.1
- Quick Start - 5 минут до первого результата
- API Reference - полная документация Universal Pipeline
- Examples - готовые примеры для всех индикаторов
- Migration Guide - переход с deprecated API
Complete Documentation
- API Documentation - Справочник API
- Tutorials - Обучающие материалы
- Examples - Примеры использования
- Developer Guide - Руководство разработчика
Architecture
- Two-Layer Design: Simplification from 3 to 2 layers
- Zero Hardcode: ZERO hardcoded indicators, full universality
- Design Patterns: Strategy, Dependency Injection, Builder, Registry
- 115 Tests: 100% pass rate, proof of universality
🎯 Roadmap
- Phase 1 (Completed): Core functionality (data loading, processing, validation), advanced MACD analysis, and statistical engine.
- Phase 2 (In Progress): Extended visualization options, implementation of Time Series and other indicator analysis modules (currently stubs).
- Phase 3 (Planned): Full machine learning integration, chart pattern recognition, and enhanced automation pipelines.
📄 License
MIT License - see LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests.
📞 Contact
- Author: kogriv
- Email: kogriv@gmail.com
- Repository: https://github.com/kogriv/bquant
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 bquant-0.0.1.tar.gz.
File metadata
- Download URL: bquant-0.0.1.tar.gz
- Upload date:
- Size: 876.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9120c113db61fb1bf1c1dcdd09abe7caf3bd76186b650c601b4edea7303e25a8
|
|
| MD5 |
28a812c3937856f046cf5cc39e61d6d4
|
|
| BLAKE2b-256 |
910794c23c25ae09d4d3c6aeb9675ddf82e54387e5b2538f0946f419652c7da0
|
File details
Details for the file bquant-0.0.1-py3-none-any.whl.
File metadata
- Download URL: bquant-0.0.1-py3-none-any.whl
- Upload date:
- Size: 412.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bceaca4bd0ba1981990aec2d69437c7cad9e6b80128f4e2fc731d355b407da4
|
|
| MD5 |
9b0144ea07a01826552bfcdea5abdf27
|
|
| BLAKE2b-256 |
765e1bf4082c4591c062e305dc1422131dcb78a1ba7b9de6755000f5f0e07630
|