开源量化数据库框架
AxData 是一个 开源量化数据库框架,将
数据源接口、采集任务、开放文件存储、本地查询、插件管理、Python SDK、HTTP API和Web 控制台集合在同一个可扩展的数据平台里。项目主要面向 个人量化研究、本地数据管理 和 数据源插件开发。
本项目前身为 eltdx,因此当前主要数据源和基础采集能力优先围绕通达信体系建设;同时默认数据源能力覆盖交易所、通达信、通达信扩展行情、巨潮、腾讯财经、新浪财经、东方财富、财联社、开盘红等公开源接口。由于接口目录会持续扩展,默认采集插件只内置少量稳定示例;有长期入库需求的接口,可以按数据源插件或采集器插件规范自行编写。欢迎开发者通过 AXP 分享插件,或提交 PR 将成熟数据源或采集器合并进项目。
Important
本项目仅是一个开源量化数据库框架,数据接口部分基于互联网公开信息搜集整理。项目不提供商业数据服务,也不代表任何第三方数据源、网站或开源项目的授权。
感谢以下开源项目为本项目的数据源接口研究和实现提供参考:
| 参考项目 | 主要参考方向 |
|---|---|
| rainx/pytdx | TDX 协议研究和 Python 实现 |
| akfamily/akshare | 巨潮、腾讯财经、新浪财经等公开财经数据接口整理 |
| fleetinglife/levistock | 东方财富、财联社、开盘红等 A 股公开数据接口整理 |
完整使用边界
- 本项目代码按 Apache-2.0 协议开源,主要面向个人学习、技术研究和本地数据管理场景。
- 本项目仅是一个开源量化数据库框架,其中数据接口部分基于互联网公开信息搜集、整理和适配。
- 本项目不提供任何商业数据服务,也不对任何第三方数据的商业使用作出授权。通过本项目访问或获取第三方数据的,用户需自行确认并遵守对应网站、数据源、开源项目或服务协议;因商业使用、付费服务、生产服务、转售或其他用途产生的风险与责任由使用者自行承担。
- 对第三方服务器或服务的访问,用户需自行遵守相关法律法规、数据源条款及服务协议。
- 请勿将本项目用于侵犯他人权益、违反监管规定、绕过访问限制或滥用第三方服务的行为。
代码授权见 LICENSE;第三方项目、第三方网站和第三方数据源仍归其各自权利人所有,并适用其各自许可证、条款和规则。
推荐先安装 完整项目 + Web 控制台。这一种方式会拉取源码,并准备 Python SDK、CLI、API 和 Web 控制台。
一行命令安装完整项目
Windows PowerShell:
git clone https://github.com/electkismet/AxData.git AxData; cd AxData; powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap.ps1macOS / Linux:
git clone https://github.com/electkismet/AxData.git AxData && cd AxData && bash scripts/bootstrap.sh启动本地 API 和 Web
Windows PowerShell:
.\.venv\Scripts\python -m uvicorn apps.api.main:app --host 127.0.0.1 --port 8666 --reload
npm run dev:webmacOS / Linux:
./.venv/bin/python -m uvicorn apps.api.main:app --host 127.0.0.1 --port 8666 --reload
npm run dev:web打开 Web 控制台
http://127.0.0.1:8667
完整项目需要本机先具备 3 个运行环境:
| 环境 | 用途 |
|---|---|
| Git | 拉取 AxData 源码 |
| Python 3.11+ | 运行 SDK、CLI、API 和后端服务 |
| Node.js 22.12+ 或更新 LTS | 运行和构建 Web 控制台 |
运行环境安装示例
Windows PowerShell:
winget install --id Git.Git -e
winget install --id Python.Python.3.12 -e
winget install --id OpenJS.NodeJS.LTS -emacOS Homebrew:
brew install git python@3.12 nodeUbuntu / Debian:
sudo apt update
sudo apt install -y git python3 python3-venv python3-pip curl ca-certificatesUbuntu / Debian 自带的 nodejs 版本可能偏旧;如果 node --version 低于 22.12,请从 Node.js 官网、NodeSource、nvm/fnm 或系统软件源安装更新的 Node.js。
如果只需要在脚本、Notebook 或命令行里使用 Python SDK/CLI,可以直接安装 Python 包:
pip install axdatapip install axdata 面向 Python SDK 和 CLI 使用,会安装 AxData Python 主包、核心依赖,以及随包提供的数据源能力。完整 Web 控制台、接口文档、本地 API 服务和前端源码请使用上面的完整项目安装方式。
升级现有安装
通过 PyPI 安装的 Python 包:
python -m pip install --upgrade axdata通过源码安装的完整项目,请在项目目录运行:
Windows PowerShell:
git pull --ff-only
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap.ps1macOS / Linux:
git pull --ff-only
bash scripts/bootstrap.sh| 能力 | 说明 |
|---|---|
| 数据源插件 | 提供接口目录、参数字段、真实样例和源端临时请求能力。 |
| 采集器插件 | 将需要长期保存的数据写入本地 Parquet 数据资产。 |
| 本地数据层 | raw -> staging -> core -> factor,以 Parquet 作为事实源。 |
| 统一查询 | DuckDB、Python SDK、CLI、HTTP API 和 Web 使用同一套契约。 |
| AXP 分享 | 数据源接口、采集器和 Web 内容跟随插件声明,可安装、导出和分享。 |
本地模式默认直接读取当前机器的数据目录和本机插件,不需要先启动 HTTP 服务。
import axdata as ax
client = ax.AxDataClient()
stocks = client.stock_basic_exchange(
exchange="SSE",
fields=["instrument_id", "name", "region", "company_full_name"],
)
quote = client.call(
"stock_realtime_snapshot_tdx",
code="000001.SZ",
fields=["instrument_id", "last_price", "change_pct"],
)client.call(...) 默认只请求源端一次,不创建采集任务,也不写入本地数据层。需要远程调用时,可连接已启动的 AxData API:
import axdata as ax
remote = ax.AxDataClient(api_base="http://192.168.1.20:8666")
stocks = remote.stock_basic_exchange(exchange="SZSE", fields=["instrument_id", "name", "list_date"])AxData 的稳定数据资产以 Parquet 为事实源。采集任务会记录任务、运行、输出路径、行数、字段、日期范围、质量状态、日志和错误分类。
.\.venv\Scripts\axdata data list
.\.venv\Scripts\axdata data inspect daily
.\.venv\Scripts\axdata data preview daily --limit 20
.\.venv\Scripts\axdata query daily --symbol 000001.SZ --start 20240101 --end 20240131 --limit 100当前默认采集器目录为 TDX 8 个独立采集器,主要用于验证采集链路、提供基础示例和覆盖常用核心数据。默认任务保持小样本参数,不会一键全市场重采。更多接口可以按同一套采集器规范扩展为独立采集器插件。
AxData 插件是本地安装、本地启用、本地运行的 Python 扩展包。
| 文件 | 作用 |
|---|---|
axdata-provider.json |
数据源 Provider 插件,提供接口目录和源端临时请求。 |
axdata-plugin.json |
多能力插件或采集器插件,提供采集器声明、运行入口、输出数据集等能力。 |
.axp |
本地安装信封,可包含 wheel、manifest、README、LICENSE、checksum 和依赖 wheels。 |
数据源插件和采集器插件可以独立存在:只想提供临时查询时写数据源插件;需要写入本地数据库时再写采集器插件。成熟插件可以导出为 AXP 分享给其他 AxData 用户,也可以提交 PR 合并到项目内置插件中。
.\.venv\Scripts\axdata plugin list --json
.\.venv\Scripts\axdata plugin installed --json
.\.venv\Scripts\axdata plugin collectors --json
.\.venv\Scripts\axdata plugin axp-preview C:\path\to\plugin.axp --json
.\.venv\Scripts\axdata plugin axp-install C:\path\to\plugin.axp --json插件卸载不会删除已采集数据、metadata、任务或 run history,只会让插件贡献的接口、采集器、下载器和任务模板从当前可用能力中消失。
默认测试不请求真实网络。真实源小样本检查必须显式启用,并建议写到临时目录。
.\.venv\Scripts\python scripts\smoke_real_sources.py --json
.\.venv\Scripts\python scripts\smoke_real_sources.py --run `
--interfaces tencent_realtime_snapshot `
--output-dir $env:TEMP\axdata-real-source-smoke `
--jsonpass 表示真实源返回小样本、写出 Parquet、质量检查通过且 DuckDB 能读回;skip 通常表示未安装、未启用、状态异常或未显式运行;fail 通常表示网络、上游、参数或限流问题。
data/
raw/ 上游原始快照
staging/ 标准化中间层
core/ 稳定用户表
factor/ 因子和研究数据
metadata/
collector/
manifests/
quality/
cache/
logs/
plugins/
data/、metadata/plugins.json、metadata/*.sqlite、metadata/*.db、cache/、logs/ 都是本地运行产物,不应提交。
| 用户入口 | 插件开发 |
|---|---|
| 快速开始 | 数据源插件开发 |
| 文档目录 | 采集器插件开发 |
| 架构设计 | 插件协议 |
| AXP 打包与安装 |
.\.venv\Scripts\python -m pytest -q
npm run lint:web
npm run build:web
.\.venv\Scripts\python -m compileall -q libs\axdata_core apps\api packages\axdata-sdk services scripts tests- QQ 群:点击链接加入群聊




