Skip to main content

Quant Data SDK

PyPI License: MIT Tests Python npm

English | 中文

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(可选)

匿名也能用,但限额较低。注册后可获得更高限额。

  1. 访问 https://zizhenghua.com 注册账号
  2. 登录后进入「账号设置」→「API Key 管理」
  3. 点击「+ 创建新 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?

  1. 访问 https://zizhenghua.com 注册
  2. 登录后进入「账号设置」→「API Key 管理」
  3. 点击「+ 创建新 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

Star History Chart


🤝 Contributing

See CONTRIBUTING.md.


📄 License

MIT


⚠️ 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)

Source distribution for zizhenghua-quant 1.2.0
File Size Uploaded
zizhenghua_quant-1.2.0.tar.gz 21.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zizhenghua-quant 1.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page