Quant Data SDK
Official Python SDK for Quant Data API.
A 股行情、财务、行业、因子数据的官方 Python SDK。
✨ Features
- 🚀 一行代码获取 A 股数据
- 🤖 AI 代码生成(自然语言 → 策略代码)
- 🖥️ 自带 CLI(
quant-data命令) - 📊 pandas 集成(
get_kline_df()等) - ⚡ 异步支持(
AsyncQuantDataClient) - 🔐 自动处理 API Key 认证
- 🔁 内置重试、超时、错误处理
- 📝 完整的类型提示(type hints)
- 📦 支持上下文管理器(
with语法) - 🆓 支持匿名调用(无需注册)
📦 Installation
# 基础
pip install zizhenghua-quant
# 带 pandas(DataFrame 支持)
pip install "zizhenghua-quant[pandas]"
# 带异步(httpx)
pip install "zizhenghua-quant[async]"
# 全部
pip install "zizhenghua-quant[all]"
🚀 Quick Start
1. 获取 API Key(可选)
匿名也能用,但限额较低。注册后可获得更高限额。
- 访问 https://zizhenghua.com 注册账号
- 登录后进入「账号设置」→「API Key 管理」
- 点击「+ 创建新 Key」,复制保存(只显示一次)
2. 调用
from quant_data_sdk import QuantDataClient
# 匿名(30 次/天 AI,10 次/分钟数据)
client = QuantDataClient()
# 或注册(100 次/天 AI,1000 次/天数据)
client = QuantDataClient(api_key="your_api_key_here")
# 获取贵州茅台实时行情
data = client.stock.get_realtime("600519")
print(data)
📖 使用示例
数据接口
from quant_data_sdk import QuantDataClient
client = QuantDataClient(api_key="your_key")
# 实时行情
data = client.stock.get_realtime("600519")
# K 线
kline = client.stock.get_kline("600519", "2024-01-01", "2024-12-31")
# 多条件选股
stocks = client.stock.filter_stocks(minTurnover=5, minRoe=15)
# 市场统计
stats = client.market.get_stats()
# 行业数据
sectors = client.sector.get_performance()
# 财务指标
fin = client.fin.get_latest("600519")
# 多因子排名
ranking = client.factor.get_ranking(topN=20)
pandas 集成
# K 线 → DataFrame
df = client.stock.get_kline_df("600519", "2024-01-01", "2024-12-31")
df["ma5"] = df["close"].rolling(5).mean()
df["ma20"] = df["close"].rolling(20).mean()
# 涨幅榜 → DataFrame
df = client.stock.get_ranking_df()
# 行业 → DataFrame
df = client.sector.get_performance_df()
异步
import asyncio
from quant_data_sdk import AsyncQuantDataClient
async def main():
async with AsyncQuantDataClient() as client:
results = await asyncio.gather(
client.stock.get_realtime("600519"),
client.stock.get_realtime("601318"),
client.stock.get_realtime("300750"),
)
for r in results:
print(r["name"], r["latestPrice"])
asyncio.run(main())
AI 代码生成
# 通用方法
result = client.ai.generate_code(
prompt="我想查看茅台23年到25年的布林带回测情况",
language="python"
)
code = client.ai.extract_code(result["raw"])
# 快捷方法
client.ai.generate_bollinger("600519", "2023-01-01", "2025-12-31")
client.ai.generate_ma_cross("600519", "2023-01-01", "2025-12-31", fast=5, slow=20)
client.ai.generate_rsi("600519", "2023-01-01", "2025-12-31", oversold=30, overbought=70)
client.ai.generate_macd("600519", "2023-01-01", "2025-12-31")
client.ai.generate_kdj("600519", "2023-01-01", "2025-12-31")
上下文管理器
with QuantDataClient(api_key="your_key") as client:
data = client.stock.get_realtime("600519")
print(data)
# 自动关闭
自定义 base URL
# 本地开发
client = QuantDataClient(
api_key="your_key",
base_url="http://127.0.0.1:8080/api"
)
🖥️ CLI
安装后自带 quant-data 命令行工具。
数据查询
# 实时行情
quant-data stock realtime 600519
# 批量
quant-data stock realtime 600519 601318 001359
# K 线
quant-data stock kline 600519 --start 2024-01-01 --end 2024-12-31
# 涨幅榜
quant-data stock ranking
# 选股
quant-data stock filter --min-turnover 5 --min-roe 15 --limit 20
# 市场统计
quant-data market stats
# 行业涨跌幅
quant-data sector performance
# 财务指标
quant-data fin latest 600519
# 多因子排名
quant-data factor ranking --top 5
导出文件
# 导出 K 线为 CSV
quant-data stock kline 600519 --start 2024-01-01 --end 2024-12-31 -o kline.csv
# 导出涨幅榜为 JSON
quant-data stock ranking -o ranking.json
# `-o` 可以放任意位置
quant-data -o ranking.json stock ranking
AI 生成
# 生成策略代码
quant-data ai generate "写一个双均线策略"
# 保存到文件
quant-data ai generate "写一个双均线策略" -o backtest.py
# Java 版本
quant-data ai generate "写一个双均线策略" --language java -o Backtest.java
用 API Key
quant-data --api-key your_key stock realtime 600519
📊 限流
| 用户 | 数据接口 | AI 接口 |
|---|---|---|
| 匿名 | 10 次/分钟,10,000 行/分钟 | 30 次/天 |
| 注册 | 300 次/分钟,600,000 行/分钟,1000 次/天 | 100 次/天 |
超限时抛 RateLimitError,并提示注册。
❌ 错误处理
from quant_data_sdk import QuantDataClient
from quant_data_sdk.exceptions import (
AuthenticationError,
RateLimitError,
NotFoundError,
ValidationError,
)
client = QuantDataClient(api_key="your_key")
try:
data = client.stock.get_realtime("600519")
except AuthenticationError as e:
print(f"认证失败: {e}")
except RateLimitError as e:
print(f"限流: {e}")
except NotFoundError as e:
print(f"资源不存在: {e}")
except ValidationError as e:
print(f"参数错误: {e}")
📚 Documentation
🤝 Contributing
See CONTRIBUTING.md.
📄 License
⚠️ Disclaimer
数据仅供量化学习与策略回测研究之用,不构成任何投资建议。
AI 生成的代码不保证正确性,请自行检查后再使用。
Release files for zizhenghua-quant 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zizhenghua_quant-1.1.0.tar.gz | 20.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zizhenghua_quant-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.2 kB
Release files / zizhenghua_quant-1.1.0.tar.gz
| Download URL | zizhenghua_quant-1.1.0.tar.gz |
|---|---|
| Size | 20.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fff88db73b2aef736189fdee6de5e022a3000e5a0a130bbb67f605765cbcb6e7
|
|
BLAKE2b-256 checksum How to use checksums |
f14ea680a226fff0619d3df75fd65ed9bd28c2b4347e497ab31f1d928938c02c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / zizhenghua_quant-1.1.0-py3-none-any.whl
| Download URL | zizhenghua_quant-1.1.0-py3-none-any.whl |
|---|---|
| Size | 24.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd8e453432112844baba9dbcd31b6af8b6472ba1b513ec550a41f206e6a855a3
|
|
BLAKE2b-256 checksum How to use checksums |
0fb35165e2b8f57db74de83607f713b2fd8eea7fa9851c021da7de1708449877
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|