历时9个月,爆肝30万行代码,我开发了一整套基于LightGBM模型量化交易系统
写在前面
作为一个从学生时代就痴迷量化交易的程序员,我一直有个执念:能不能把机构级的量化交易系统,做成普通人也能用的开源工具?
从2025年7月写下第一行代码开始,到今天项目正式开源,整整9个月。30万行代码,无数个熬夜调试的夜晚,终于打磨出了一套打通"数据→训练→回测→推理→实盘"全流程闭环的量化交易系统——QuantMind。
今天把项目开源出来,希望能帮到同样对量化交易感兴趣的你。
📌 项目地址:github.com/qusong0627/…
⭐ 如果觉得有用,帮忙点个 Star 就是最大的支持!
一、为什么做这个项目?
市面上的量化平台,要么太贵(机构级产品动辄数万/年),要么太简陋(只能跑个简单策略)。而开源方案往往只解决了某个环节的问题——要么只有回测引擎,要么只有交易接口,没有一个完整的端到端解决方案。
QuantMind 的目标很明确:
- ✅ 开箱即用:一键部署,内置数据和预训练模型
- ✅ 全流程闭环:从模型训练到实盘交易,一个系统搞定
- ✅ AI 驱动:基于 LightGBM + Alpha158 因子,自动化特征工程
- ✅ 完全开源:AGPL v3 协议,代码透明,可二次开发
二、系统长什么样?
先上几张实际截图,让大家直观感受一下:
📊 智能仪表盘
实时监控账户状态、持仓盈亏、策略表现,所有关键信息一目了然。
🔬 快速回测
分钟级完成策略回测,支持自定义参数、多标的组合、详细绩效报告。独创 Qlib + Pandas 双引擎架构,灵活应对不同场景。
🧠 模型训练
可视化配置训练参数,自动完成特征工程、样本划分、模型训练与评估。基于微软 Qlib 框架深度集成,提供业界领先的量化研究能力。
🎯 模型管理
多版本模型管理,一键切换生产模型,查看训练日志与性能指标。
⚡ 模型推理
每日自动推理生成交易信号,支持手动触发、信号导出、历史回溯。
💹 实盘交易
对接券商实盘(QMT),支持自动下单、持仓同步、风险控制。实盘前还有完整的模拟盘验证流程。
🛡️ 风险管理
完善的风控体系:止损止盈、仓位限制、黑名单管理、异常预警。
📊 高级分析
深度策略分析:收益归因、风险分解、因子暴露、Benchmark 对比。
三、技术架构
系统采用微服务架构,前后端分离,4 个后端服务各司其职:
核心技术栈
| 层级 | 技术选型 |
|---|---|
| 前端 | Electron + React + TypeScript + Ant Design |
| 后端 | Python 3.10 + FastAPI + SQLAlchemy |
| 回测引擎 | Qlib + Pandas 双引擎 |
| AI 模型 | LightGBM + Qlib Model Framework |
| 数据库 | PostgreSQL 15 + Redis 7 |
| 消息队列 | Celery + Redis |
| 容器化 | Docker + Docker Compose |
AI 模型全生命周期
📊 数据准备 → 🧠 模型训练 → 📈 效果评估 → 🚀 模型部署 → ⚡ 实时推理 → 📡 信号生成 → 💹 执行交易
从训练到推理,完整闭环。多模型共存,一键切换。
四、核心特性详解
🧠 Qlib 内核驱动
基于微软 Qlib 量化框架深度集成:
- LightGBM 模型 — 高性能梯度提升模型,专为金融时序预测优化
- Alpha158 因子集 — 158 个经典量化因子,覆盖动量、估值、质量等多维度
- 自动化特征工程 — 48 维标准化特征,开箱即用
🎯 双引擎回测系统
| 引擎 | 适用场景 | 性能 |
|---|---|---|
| Qlib Engine | 复杂策略、多因子模型、机构级研究 | 极高性能 |
| Pandas Engine | 快速验证、简单策略、教学演示 | 轻量极快 |
📈 实盘交易对接
- QMT 券商 — 迅投 QMT 深度对接
- 模拟盘验证 — 实盘前完整模拟
- 风控系统 — 止损止盈、仓位控制、风险预警
五、快速开始
环境要求
- 操作系统:Ubuntu 22.04+(推荐 24.04 LTS)
- 基础功能:4核 8GB 即可运行
- 完整功能(含模型训练/推理):推荐 8核 32GB+
一键部署
在全新的 Ubuntu 服务器上执行:
curl -fsSL https://gitee.com/qusong0627/quantmind/raw/master/deploy/quick-deploy.sh | sudo bash -s -- --yes
部署完成后访问:http://<服务器IP>
默认账号:admin / admin123
离线数据包
系统内置了完整的数据包:
- Qlib 股票特征数据(6000+ 股票)
- 模型特征快照(2016-2026 年)
- 预训练模型文件
下载地址:oss.quantmindai.cn/data-downlo…
本地开发
# 后端
source .venv/bin/activate
pip install -r requirements.txt
python backend/main_oss.py
# 前端
npm install
npm run dev
六、开发过程中的那些坑
9个月的开发,踩过的坑数不胜数,挑几个印象最深的分享一下:
1. Qlib 特征数据的存储方案
Qlib 的特征数据量极大,最初直接存数据库导致查询慢到无法接受。后来改成了 Parquet 格式的特征快照 + 数据库索引 的方案,查询速度提升了 10 倍以上。
2. 回测结果的一致性
Qlib 和 Pandas 双引擎的回测结果必须一致,否则用户无法信任系统。为此写了大量的对齐测试,确保两种引擎在相同策略下输出完全一致的结果。
3. 模型推理的实时性
每日自动推理需要在开盘前完成全市场 6000+ 股票的信号生成。通过 Celery 任务队列 + 多进程并行,将推理时间压缩到了分钟级。
4. 前端 Electron 的性能优化
30万行代码中,前端占了很大比例。Electron 应用容易内存泄漏,通过合理的组件卸载、数据分页、虚拟列表等优化,最终将内存占用控制在了合理范围。
七、后续规划
开源只是开始,后续还有大量计划:
- 支持更多 AI 模型(Transformer、LSTM 等)
- 接入更多券商(华泰、中信等)
- 社区策略分享平台
- 更多技术指标和因子库
- 移动端适配
八、写在最后
做这个项目的初衷,就是希望让量化交易不再是机构的专利。
如果你对量化交易感兴趣,如果你也想用 AI 来辅助投资决策,如果你也相信开源的力量——
欢迎来一起贡献!
📌 GitHub 地址:github.com/qusong0627/…
⭐ 点个 Star 支持一下呗!
💬 交流讨论:QQ群 1097406397
如果觉得这篇文章对你有帮助,欢迎转发、点赞、收藏,让更多人看到这个开源项目! 🙏