Skip to main content

Intelligent caching wrapper for AKShare with 90%+ performance boost - 100% English codebase (import as 'qdb')

Project description

QuantDB - Intelligent Stock Data Caching

PyPI version PyPI - Downloads PyPI - Python Version License: MIT Performance

Intelligent caching wrapper for AKShare with 90%+ performance boost - Complete stock data ecosystem with smart SQLite caching for Chinese financial markets.

📊 Note: Download statistics may take 24-48 hours to appear on PyPI and third-party services after a new release.

🚀 Quick Start

pip install quantdb  # One command, instant 90%+ speed boost!
import qdb  # Note: import name is 'qdb' for simplicity

# Multiple ways to get stock data - all 90%+ faster than AKShare!
df = qdb.get_stock_data("000001", days=30)  # Simple: last 30 days
df = qdb.get_stock_data("000001", "20240101", "20240131")  # Date range
df = qdb.get_stock_data("000001", start_date="20240101", end_date="20240131")  # Keywords

✨ Key Features

  • 🚀 90%+ Performance Boost: Local SQLite cache avoids repeated network requests
  • 🧠 Smart Incremental Updates: Only fetch missing data, maximize cache efficiency
  • ⚡ Millisecond Response: Cache hit response time < 10ms
  • 📅 Trading Calendar Integration: Smart data acquisition based on real trading calendar
  • 🔧 Zero Configuration: Automatically initialize local cache database
  • 🔄 Full AKShare Compatibility: Drop-in replacement with same API interface
  • 🌍 100% English Codebase: International developer friendly
  • 🎯 Multi-Market Support: A-shares + Hong Kong stocks unified API
  • 📈 Real-time Data: Live stock prices with intelligent caching
  • 📊 Financial Indicators: Comprehensive financial metrics and ratios
  • 🔍 Stock Discovery: Complete stock list with market filtering

📊 Performance Comparison

Operation AKShare QuantDB Improvement
First Request ~1000ms ~1000ms Same
Cache Hit ~1000ms ~18ms 98.1% faster
Bulk Operations Very Slow Lightning Fast 90%+ faster

🔧 Core API

Basic Usage

import qdb

# Historical stock data (multiple call patterns supported)
df = qdb.get_stock_data("000001", days=30)  # Last 30 days
df = qdb.get_stock_data("000001", "20240101", "20240131")  # Date range
df = qdb.get_stock_data("000001", start_date="20240101", end_date="20240131")  # Keywords
df = qdb.get_stock_data("600000", start_date="20240101", end_date="20240201")

# Multiple stocks
stocks_data = qdb.get_multiple_stocks(["000001", "000002"], days=30)

# Asset information
asset_info = qdb.get_asset_info("000001")

# Cache management
stats = qdb.cache_stats()  # View cache statistics
qdb.clear_cache()         # Clear cache if needed

Advanced Features (v2.2.8)

import qdb

# Real-time stock quotes with intelligent caching
realtime = qdb.get_realtime_data("000001")
batch_realtime = qdb.get_realtime_data_batch(["000001", "000002"])

# Complete stock list with market filtering
all_stocks = qdb.get_stock_list()  # All markets
shse_stocks = qdb.get_stock_list(market="SHSE")  # Shanghai Stock Exchange
szse_stocks = qdb.get_stock_list(market="SZSE")  # Shenzhen Stock Exchange

# Index data (now available via top-level qdb)
index_hist = qdb.get_index_data("000001", start_date="20240101", end_date="20240201")
index_rt = qdb.get_index_realtime("000001")
index_list = qdb.get_index_list()  # Or filter by category

# Financial data and indicators
financial_summary = qdb.get_financial_summary("000001")  # Key metrics
financial_indicators = qdb.get_financial_indicators("000001")  # Detailed ratios

AKShare Compatibility

import qdb

# 100% compatible with AKShare API
df = qdb.stock_zh_a_hist("000001", start_date="20240101", end_date="20240201")

Configuration

import qdb

# Custom cache directory
qdb.set_cache_dir("./my_custom_cache")

# Logging level
qdb.set_log_level("INFO")  # DEBUG, INFO, WARNING, ERROR

🔍 Feature details

  • Real-time data: Trading-hours TTL vs. off-hours TTL to minimize latency and API calls; automatic cache hit detection and graceful fallback
  • Stock list: Market filter via market="SHSE"/"SZSE"/"HKEX"; daily caching with force_refresh toggle
  • Financial metrics: Summary and indicators endpoints designed for quick lookups and lightweight analysis

🎯 Use Cases

  • Quantitative Research: Frequent backtesting with cached historical data
  • Algorithm Trading: Real-time data access with minimal latency
  • Financial Analysis: Large-scale data processing with performance optimization
  • Portfolio Management: Multi-asset data retrieval and analysis
  • Academic Research: Reliable data source for financial studies

🎉 What's new in v2.2.8

  • ✅ Easier API usage: get_stock_data() now supports positional, keyword, and mixed arguments
  • ✅ Documentation and examples updated: Improved UX and clarity
  • ✅ Quality assured: 149/149 tests passing (100%)
  • ✅ Version alignment: Unified version across files; PyPI-ready packaging

📚 Documentation & Support

🏗️ Architecture

QuantDB provides multiple deployment options:

  1. 📦 Python Package (This Package): Local caching for individual developers
  2. 🚀 API Service: Enterprise-grade REST API with advanced features
  3. ☁️ Cloud Platform: Web interface with visualization and monitoring

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built on top of the excellent AKShare library
  • Inspired by the need for high-performance financial data access in Python

Note: Package name is quantdb, import name is qdb (similar to scikit-learn → sklearn)

Made with ❤️ for the Python quantitative finance community

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

quantdb-2.2.8.tar.gz (153.8 kB view details)

Uploaded Source

Built Distribution

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

quantdb-2.2.8-py3-none-any.whl (102.7 kB view details)

Uploaded Python 3

File details

Details for the file quantdb-2.2.8.tar.gz.

File metadata

  • Download URL: quantdb-2.2.8.tar.gz
  • Upload date:
  • Size: 153.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for quantdb-2.2.8.tar.gz
Algorithm Hash digest
SHA256 58d8378c9f89446d58ed2fefc8c211b958d4f78a15b8a24e70292808aa404d19
MD5 1169f8fb1345063a602fe182cbd7bc60
BLAKE2b-256 e420554352778210f9599eabb54ef7342c8152924e1e58f84046ca7322e3b44e

See more details on using hashes here.

File details

Details for the file quantdb-2.2.8-py3-none-any.whl.

File metadata

  • Download URL: quantdb-2.2.8-py3-none-any.whl
  • Upload date:
  • Size: 102.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for quantdb-2.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7fb529a09d7eba461b976f08501c5cc50d1a94aabe2cb6177f87ceb0db8da1f5
MD5 79aab546c909c746a1a40639a4471390
BLAKE2b-256 ef206753c0d2e3f92193484f397982b40aa2cebbaf27922c2a58b9057f38b1f2

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