一个基于 FastAPI + React 的量化研究基础设施 —— 回测引擎、实时行情、策略库,外加一套严谨的策略证伪方法学。聚焦 今日研究、策略回测、实时行情、行业热度 四个公开工作区。
Quant research infrastructure — backtest engines, realtime data, a strategy library, and a rigorous strategy-falsification methodology.
当前版本:v5.0.0 · 查看更新日志
本地优先 · 研究档案闭环 · 可独立运行 · 自带浏览器回归验证
它是一套量化研究基础设施:可独立运行的回测引擎、实时行情管线、29 种策略实现,以及一套用来证伪自己策略的形式化统计方法学。请把它当成一个研究与回测平台来用。
这个仓是一个独立维护的量化研究项目,围绕今日研究与四块核心工作区展开:
| 模块 | 说明 |
|---|---|
| 🧭 今日研究 | 汇总回测快照、行业观察、实时提醒和复盘记录,形成当天处理队列与研究档案 |
| 📊 策略回测 | 单资产 / 跨市场 / 批量 / Walk-Forward 回测引擎 |
| 📈 实时行情 | 多市场实时行情聚合、WebSocket 推送、提醒与复盘 |
| 🔥 行业热度 | 行业热力图、排行榜、龙头股分析与轮动观察;附"政策雷达"标签呈现 alt-data 政策事件 |
| ⚡ 纸面账户 | 市价 / 限价单(含取消)、滑点、止损、止盈,按 profile 持久化持仓与订单,前端基于实时行情计算浮动盈亏;支持回测结果一键预填或按市价直接成交,持仓可一键归档到今日研究 |
这意味着:
- 当前仓的前端主入口是
today / backtest / realtime / industry / paper - 当前仓的后端接口围绕
/backtest/*、/realtime/*、/industry/*、/cross-market/*、/paper/*、/policy-radar/*、/research-journal/*等能力展开 - 项目可以独立 clone、安装、启动和发布,不依赖其他 sibling repo
- 想直接拿到一套能跑起来的量化研究与回测基础设施,而不是只拿到一个算法库
- 想把
策略回测、实时行情、行业热度和当天研究档案放在同一个前后端项目里联动验证 - 想优先依赖真实页面和浏览器回归来确认功能,而不是只看接口或静态图
| 如果你想先看 | 建议入口 |
|---|---|
| 这个仓实际长什么样 | 本地体验 + 界面预览 |
| 怎么最快启动 | 快速开始 |
| 提供了哪些接口与模块 | API 文档 + 项目结构 |
| ETF 轮动是否值得继续跟踪 | ETF Rotation Walk-Forward Credibility Report |
| 最近版本改了什么 | 更新日志 + Release Notes |
当前不提供公开在线 Demo。请在本地同时启动前后端后体验完整功能。
cp .env.example .env
# 可选:填入 TUSHARE_TOKEN 后,后端会启用 Tushare 作为 A股/ETF 盘后、历史和交易日历数据源
./scripts/start_system.sh启动成功后直接访问:
http://localhost:3000?view=today查看今日研究http://localhost:3000查看策略回测http://localhost:3000?view=realtime查看实时行情http://localhost:3000?view=industry查看行业热度
| 页面 | 地址 | 说明 |
|---|---|---|
| 📊 策略回测 | http://localhost:3000 |
单资产回测、历史记录、对比、组合优化、跨市场回测 |
| 📈 实时行情 | http://localhost:3000?view=realtime |
多市场行情聚合、提醒、复盘与深度详情 |
| 🔥 行业热度 | http://localhost:3000?view=industry |
热力图、排行榜、龙头股分析、轮动观察 |
| 📖 API 文档 | http://localhost:8000/docs |
Swagger UI 交互式文档 |
- 先进入 行业热度,查看热力图和排行榜,建立当下板块温度感。
- 再切到 实时行情,打开指数或美股详情,查看趋势、量价、情绪和提醒。
- 回到 策略回测,运行主回测或
cross-market,验证想法并沉淀结果。
- 支持主回测、历史复盘、策略对比、组合优化和高级实验
- 高级实验 工作区(
?tab=advanced)整合 Walk-Forward、批量参数搜索、贝叶斯优化、市场状态分层、Portfolio 曝险与基准对比,把"过拟合检测 → 参数稳健性 → 组合验证"做成一条线 - 保留
cross-market跨市场回测作为核心研究能力的一部分 - 内置 29 种策略,覆盖 7 大类别(见下表);策略库用于研究与对比,不构成投资建议
- 回测结果支持收益、Sharpe、回撤、交易事件、月度收益等维度展示
- 主回测每跑完一次会自动归档到"今日研究"档案,带策略 / 标的 / 期间 / 主要指标,便于多版本对比
- 配套
strategy_statistical_tests.py形式化检验层(DM + 区块自举 + Sharpe 检验 + Holm 校正),用于判断回测价差是否只是噪声
📋 内置策略一览(29 种)
| 类别 | 策略 |
|---|---|
| 基础策略 | 均线交叉 · RSI · 布林带 · 买入持有 · 海龟交易 · 多因子 |
| 高级策略 | 均值回归 · 动量 · VWAP · 随机振荡 · MACD · ATR 跟踪止损 · 组合策略 |
| 技术分析 | Ichimoku 云图 · 随机指标 · CCI · 抛物线 SAR · 多指标融合 |
| 配对交易 | 单对配对交易 · 多对配对交易 |
| 机器学习 | 随机森林 · 逻辑回归 · 集成策略 |
| 情绪策略 | 情绪策略 · 情绪动量 · 逆向情绪 |
| 深度学习 | LSTM · 深度学习集成 · 增强动量 |
- 多市场行情聚合,支持指数、美股、A 股、加密等分组
- 支持 WebSocket 实时更新、复盘快照、提醒命中历史和开发诊断
- 详情页整合趋势、量价、情绪、风险、相关性、AI 辅助分析
- 保留提醒记录、快照与诊断能力,适合作为独立的实时监控工作台
- 行业热力图支持时间窗、颜色维度、来源标签与状态条联动
- 行业排行榜支持排序、筛选、来源联动、URL 状态持久化
- 龙头股详情支持火花线、AI 洞察、竞态保护与观察列表提醒
- 保留页面内提醒、观察与状态持久化,适合作为独立的行业研究工作区
![]() 实时行情深度详情 趋势、量价、情绪、风险与相关性等多维联动 |
![]() 行业热度总览 行业评分、资金流向、板块轮动与排行榜 |
![]() 行业热力图 Treemap 交互视图,支持多维度切换与状态条定位 |
![]() 龙头股详情 从行业到个股的多维分析链路 |
quant-trading-system/
├── backend/ # FastAPI 后端
│ ├── main.py # 应用入口、中间件与路由挂载
│ └── app/
│ ├── api/v1/endpoints/ # backtest / realtime / industry / cross-market 等接口
│ ├── core/ # 配置、错误处理、任务队列、限流状态
│ ├── db/ # 数据库连接与 schema
│ ├── schemas/ # Pydantic 请求/响应模型
│ ├── services/ # 实时提醒、偏好、复盘、交易流
│ └── websocket/ # WebSocket 路由与连接管理
├── frontend/ # React 18 前端 (Vite)
│ └── src/
│ ├── components/ # 回测 / 实时 / 行业 / 跨市场等组件 (31 主组件 + 6 子模块)
│ ├── hooks/ # 实时偏好、实验工作区等自定义 Hook
│ ├── services/ # API 与 WebSocket 客户端
│ ├── contexts/ # React Context 状态管理
│ ├── i18n/ # 国际化支持
│ └── utils/ # 路由、快照对比、格式化工具
├── src/ # 核心算法库
│ ├── analytics/ # 行业分析、估值、趋势、信号、定价等 (26 模块)
│ ├── backtest/ # 主回测 / 跨市场 / 批量 / 组合 / 风控 / 执行引擎 (14 模块)
│ ├── core/ # 基础类、事件系统
│ ├── data/ # 数据管理器、实时管理器、数据提供器、另类数据
│ │ └── providers/ # 8 大数据提供器 (Yahoo / AKShare / Sina / TwelveData 等)
│ ├── middleware/ # 请求中间件
│ ├── reporting/ # 报告生成
│ ├── security/ # 安全与加密
│ ├── settings/ # 分层配置管理 (base / data / trading / api / performance / gui)
│ ├── strategy/ # 29 种内置策略实现 + 策略验证器
│ ├── trading/ # 交易执行与跨市场资产建模
│ └── utils/ # 通用工具
├── tests/ # 测试套件
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ ├── e2e/ # Playwright 浏览器 E2E
│ └── manual/ # system smoke 脚本
├── docs/ # 项目文档
└── scripts/ # 启停、检查、文档生成、验证等运维脚本
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端框架 | FastAPI + Uvicorn | 异步 RESTful API,自动 OpenAPI 文档 |
| 前端框架 | React 18 + Ant Design 5 | 懒加载、响应式布局、主题支持 |
| 实时通信 | WebSocket | 实时行情与交易流广播 |
| 数据获取 | yfinance · Tushare · AKShare · THS/Sina · Tencent 等多源 | 多 provider 聚合与故障回退 |
| 任务队列 | Celery + Redis | 异步回测任务与后台调度 |
| 时序数据库 | TimescaleDB (PostgreSQL) | 行情数据持久化与高效时序查询 |
| 图表可视化 | Recharts + Ant Design Charts + Lightweight Charts | K 线 / 热力图 / 雷达图 / 走势线 |
| 监控 | Prometheus Client + APScheduler | 性能指标采集与定时任务 |
| 测试 | pytest + Jest + Playwright | 单元 / 集成 / 浏览器 E2E |
| CI/CD | GitHub Actions | 后端回归 + 前端回归 + E2E 验证 |
| 场景 | 主用数据源 | 补充 / 兜底 | 定位 |
|---|---|---|---|
| 实时行情 | Yahoo Finance | Sina / AKShare 单股接口 | 面向实时面板与跨市场资产,优先保留日内可更新能力 |
| 行业热度 | THS | AKShare / Tushare / Sina | THS 提供行业热度主底座,AKShare 补元数据,Tushare 补盘后资金流与板块状态,Sina 做低可用兜底 |
| 龙头股 | THS / Sina | AKShare / Tencent / Tushare | THS/Sina 给领涨股线索,AKShare/Tencent 补成分股和估值,Tushare dc_index 在其他源缺失时补盘后领涨股 |
| A 股 / ETF 历史 | Tushare Pro | AKShare / Sina | Tushare 作为付费盘后与历史研究源,不作为实时行情源 |
| 提供器 | 覆盖市场 | 说明 |
|---|---|---|
| Yahoo Finance | 美股、指数、跨市场资产 | 全球主要市场行情;当前实时面板的主行情源 |
| Tushare Pro | A 股、ETF、行业盘后 | 公司授权 / 付费数据源;用于 A 股/ETF 历史、交易日历、市场情绪、行业盘后资金流与板块状态 |
| AKShare | A 股、行业 | 沪深行情、行业分类、行业元数据、成分股与估值补充 |
| Sina / Sina THS | A 股、行业 | 新浪财经实时行情与同花顺行业热度主数据 |
| Tencent Finance | A 股单股 | 单股 PE/PB、市值、换手率等估值字段兜底 |
| TwelveData | 全球 | 多市场行情 API |
| AlphaVantage | 美股 | 日线 / 周线 / 月线及技术指标 |
| US Stock Provider | 美股 | 美国市场专用适配器 |
| Commodity Provider | 商品 | 大宗商品行情 |
| 依赖 | 最低版本 | 推荐版本 |
|---|---|---|
| Python | 3.9+ |
3.13 |
| Node.js | 16+ |
22 |
| npm | 8+ |
10+ |
git clone https://github.com/Leonard-Don/quant-trading-system.git
cd quant-trading-system
# 复制并按需修改环境变量
cp .env.example .env
# 一键启动前后端
./scripts/start_system.sh
# 后台托管启动(本地日常使用)
./scripts/start_system.sh --daemon --force-port-cleanup# 1. 安装后端依赖
pip install -r requirements-dev.txt
# 2. (可选)启动 Celery Worker
# 需要自行配置 CELERY_BROKER_URL
./scripts/start_celery_worker.sh
# 3. 启动后端
python scripts/start_backend.py
# 4. 启动前端(新终端)
cd frontend
npm install
npm start项目使用分层环境变量管理,所有配置项在 .env.example 中有完整注释。核心配置分组:
| 分组 | 说明 |
|---|---|
| 基础配置 | 日志等级、环境标识、调试模式 |
| 数据配置 | 缓存策略、数据源超时、刷新间隔 |
| 交易配置 | 初始资金、佣金、滑点、风控阈值 |
| API 配置 | 前后端地址、端口、CORS |
| 安全配置 | 限流、加密、审计日志 |
| 可选外部服务 | 数据库、Redis、Celery broker |
| OAuth | GitHub / Google OAuth 集成 |
| 通知 | 邮件、钉钉、企业微信 |
python3 ./scripts/health_check.py项目覆盖后端单元 / 集成测试、前端组件测试和浏览器 E2E 验证。
# 完整单元测试
pytest tests/unit/ -q
# 集成测试
pytest tests/integration/ -q
# 指定模块
pytest tests/unit/test_backtester.py tests/unit/test_realtime_manager.py -qcd frontend
# 完整测试套件(30 个测试文件)
CI=1 npm test -- --runInBand --watchAll=false
# 按模块测试
CI=1 npm test -- --runInBand --runTestsByPath \
src/__tests__/app-routing.test.js \
src/__tests__/cross-market-backtest-panel.test.js \
src/__tests__/realtime-panel.test.js \
src/__tests__/industry-heatmap.test.jscd tests/e2e
# 实时行情验证
npm run verify:realtime
# 行业功能验证
npm run verify:industryGitHub Actions 会在每次 push 到 main 或 PR 时自动运行:
| Job | 内容 |
|---|---|
backend |
后端依赖安装 + 回归测试 (pytest) |
frontend |
前端依赖安装 + 回归测试 (Jest) + 构建验证 |
research-e2e |
全栈启动 + Playwright E2E |
启动后端后可访问:
| 入口 | 地址 |
|---|---|
| Swagger UI | http://localhost:8000/docs |
| ReDoc | http://localhost:8000/redoc |
详细参考文档:
- 📘 API 完整参考 — 所有接口的请求/响应契约
- 📬 Postman Collection — 可导入 Postman 直接调试
- 📄 OpenAPI Schema — 标准 JSON 格式 OpenAPI 3.0 定义
| 文档 | 说明 |
|---|---|
| 更新日志 | 版本发布记录与变更说明 |
| API 参考 | 接口契约与使用示例 |
| 部署指南 | 生产环境部署流程 |
| 测试指南 | 测试编写与运行说明 |
| 项目结构 | 目录结构与模块说明 |
| 性能优化 | 性能调优建议 |
| 维护指南 | 日常维护与运维 |
| 回测契约 | 回测结果数据格式 |
| 贡献指南 | 开发流程与提交规范 |
| 安全策略 | 安全漏洞报告流程 |
| 脚本 | 说明 |
|---|---|
scripts/start_system.sh |
一键启动前后端 |
scripts/stop_system.sh |
一键停止所有服务 |
scripts/start_backend.py |
单独启动后端 |
scripts/start_frontend.sh |
单独启动前端 |
scripts/start_celery_worker.sh |
启动 Celery 异步任务进程 |
scripts/stop_celery_worker.sh |
停止 Celery 进程 |
scripts/health_check.py |
全链路健康检查 |
scripts/run_tests.py |
运行测试套件 |
scripts/generate_api_docs.py |
生成 API 文档 |
scripts/sync_version.py |
同步前后端版本号 |
scripts/performance_test.py |
性能压测 |
scripts/cleanup.sh |
清理缓存与临时文件 |
欢迎参与贡献!请查看 CONTRIBUTING.md 了解完整流程。
快速通道:
# 1. Fork 并克隆
git clone https://github.com/<your-username>/quant-trading-system.git
# 2. 安装依赖
pip install -r requirements-dev.txt
cd frontend && npm install && cd ..
# 3. 创建功能分支
git checkout -b feature/your-feature
# 4. 开发并测试
pytest tests/unit/ -q
cd frontend && CI=1 npm test -- --runInBand --watchAll=false
# 5. 提交 PR
git push origin feature/your-feature如果你还需要更偏定价研究、宏观因子监控和研究运营闭环的能力,可以查看独立项目 super-pricing-system。
两个项目当前按独立仓维护:
quant-trading-system:聚焦策略回测 / 实时行情 / 行业热度super-pricing-system:聚焦定价研究 / 上帝视角 / 研究工作台 / Quant Lab- 两边各自独立 clone、安装、启动、测试和发布
本项目基于 MIT License 发布。





