Quant Data SDK
Official Python & JavaScript SDK for Quant Data API.
A 股行情、财务、行业、因子数据的官方 Python / JavaScript SDK。
✨ Features
- 🚀 一行代码获取 A 股数据
- 🤖 AI 代码生成(自然语言 → 策略代码)
- 🖥️ 自带 CLI(
quant-data命令) - 📊 pandas 集成(
get_kline_df()等) - ⚡ 异步支持(
AsyncQuantDataClient) - 📦 JavaScript/TypeScript SDK
- 🔐 自动处理 API Key 认证
- 🔁 内置重试、超时、错误处理
- 📝 完整的类型提示(type hints)
- 📦 支持上下文管理器(
with语法) - 🆓 支持匿名调用(无需注册)
📦 Installation
Python
# 基础
pip install zizhenghua-quant
# 带 pandas(DataFrame 支持)
pip install "zizhenghua-quant[pandas]"
# 带异步(httpx)
pip install "zizhenghua-quant[async]"
# 全部
pip install "zizhenghua-quant[all]"
JavaScript / TypeScript
npm install zizhenghua-quant
🚀 Quick Start
1. 获取 API Key(可选)
匿名也能用,但限额较低。注册后可获得更高限额。
- 访问 https://zizhenghua.com 注册账号
- 登录后进入「账号设置」→「API Key 管理」
- 点击「+ 创建新 Key」,复制保存(只显示一次)
2. Python 调用
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)
3. JavaScript 调用
import { QuantDataClient } from 'zizhenghua-quant';
const client = new QuantDataClient({
apiKey: 'your_api_key_here', // 可选
});
const data = await client.stock.getRealtime('600519');
console.log(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
📦 JavaScript/TypeScript SDK
除了 Python SDK,还提供 JS/TS SDK。
安装
npm install zizhenghua-quant
使用
import { QuantDataClient } from 'zizhenghua-quant';
const client = new QuantDataClient({
apiKey: 'your_api_key_here', // 可选,不传则匿名
});
// 实时行情
const data = await client.stock.getRealtime('600519');
// K 线
const kline = await client.stock.getKline('600519', '2024-01-01', '2024-12-31');
// 涨幅榜
const ranking = await client.stock.getRanking();
// 市场统计
const stats = await client.market.getStats();
// 行业
const sectors = await client.sector.getPerformance();
// 财务
const fin = await client.fin.getLatest('600519');
// 多因子
const factors = await client.factor.getRanking(20);
AI 代码生成
const result = await client.ai.generateCode({
prompt: '我想查看茅台23年到25年的布林带回测情况',
language: 'python',
});
const code = AIAPI.extractCode(result.raw, 'python');
console.log(code);
📊 限流
| 用户 | 数据接口 | 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
❓ FAQ
1. 匿名能用吗?
能,但限额较低:
- 数据接口:10 次/分钟,10,000 行/分钟
- AI 接口:30 次/天
注册后可获得更高限额。
2. 怎么拿 API Key?
- 访问 https://zizhenghua.com 注册
- 登录后进入「账号设置」→「API Key 管理」
- 点击「+ 创建新 Key」,复制保存
3. 支持哪些股票?
A 股全市场(沪深京),包括指数、ETF。
4. 数据从哪来?
公开数据源,仅供学习研究。
5. 能商用吗?
SDK 是 MIT 协议,可以商用。数据接口有免费额度。
6. 报错 RateLimitError 怎么办?
- 等 1 分钟
- 或注册获取更高限额
- 或加 API Key
7. Python 和 JS SDK 有什么区别?
功能基本一致,语言不同:
- Python:支持 pandas / 异步 / CLI
- JS/TS:支持 TypeScript 类型
8. 支持哪些 Python 版本?
Python 3.8+。
9. 支持哪些 Node 版本?
Node 16+。
10. 怎么提 issue?
https://github.com/Zizhenghua/quant-data-sdk/issues
📈 Star History
🤝 Contributing
See CONTRIBUTING.md.
📄 License
⚠️ Disclaimer
数据仅供量化学习与策略回测研究之用,不构成任何投资建议。
AI 生成的代码不保证正确性,请自行检查后再使用。
Release files for zizhenghua-quant 1.2.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.2.0.tar.gz | 21.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zizhenghua_quant-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.9 kB
Release files / zizhenghua_quant-1.2.0.tar.gz
| Download URL | zizhenghua_quant-1.2.0.tar.gz |
|---|---|
| Size | 21.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a6b563e29d5e5a162dbb86763f76b9b4ca2cb8872bc45edd22b22a1db0a01eed
|
|
BLAKE2b-256 checksum How to use checksums |
3b80d6c839f42402047fd9f93040227221fe67b947495811bd24dc81afe0ce84
|
| 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.2.0-py3-none-any.whl
| Download URL | zizhenghua_quant-1.2.0-py3-none-any.whl |
|---|---|
| Size | 25.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7754cb5d59f4e20152a41eaec99e179b1da613c83ec83d3d11bc939d0f6c9b08
|
|
BLAKE2b-256 checksum How to use checksums |
491f3bbd59ba4ff88510e7763b35415c55f556e0d10825f49866884eb0adb170
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|