当金融遇上极客精神,量化交易从此变成一场高能实验!
"在 TradingLab,没有'韭菜',只有尚未完成实验的交易研究员。"
—— 实验室墙上的涂鸦
TradingLab 是一个功能强大的股票数据获取与回测平台,让你像科学家一样严谨地验证交易策略。无论你是量化交易新手还是经验丰富的交易员,TradingLab 都能帮助你构建、测试和优化交易策略,降低投资风险,提高收益率。
- 📊 可视化实验室:一键生成专业级回测报告,收益率、交易记录、价格走势与信号图表一目了然
- 🌐 全市场覆盖:内置数据提取器,可通过多个数据源获取需要的股票数据,并且智能切换可用的数据源
- 🧪 策略实验室:5+经典策略模板(动量、均值回归、套利等),开箱即用
- 🔄 批量回测:支持多股票、多策略、多参数的批量回测,快速找出最优组合
- 📈 性能分析:全面的回测统计指标,包括夏普比率、最大回撤、胜率等,帮助你评估策略表现
- 🔍 策略优化:内置参数优化工具,自动寻找最佳参数组合
- 🕒 定时任务:支持定时拉取股票数据,定时执行回测策略并保存结果
| 技术 | 描述 |
|---|---|
| React | 用户界面库 |
| TypeScript | 类型安全的 JavaScript 超集 |
| Tailwind CSS | 实用优先的 CSS 框架 |
| Shadcn/ui | 基于 Radix UI 的组件库 |
| TanStack Query | 数据获取和缓存库 |
| Recharts & Highcharts | 数据可视化图表库 |
| Wouter | 轻量级路由库 |
| Zod | TypeScript 优先的模式验证 |
| React Hook Form | 表单处理库 |
| 技术 | 描述 |
|---|---|
| FastAPI | 高性能 Python API 框架 |
| SQLAlchemy | Python SQL 工具包和 ORM |
| Pydantic | 数据验证和设置管理 |
| SQLite | 轻量级数据库 |
| AkShare | 金融数据接口 |
| Backtesting.py | 回测框架 |
| TA-Lib | 技术分析库 |
| Scikit-learn | 机器学习库 |
| APScheduler | 任务调度库 |
- Python 3.13+
- uv (Python 包管理工具)
- Node.js 23.2.0+
- pnpm (推荐的 Node.js 包管理工具)
- SQLite (内置)
# 克隆实验室仓库
git clone https://github.com/souloss/TradingLab.git
cd TradingLab
# 安装后端依赖
cd backend
uv venv
uv pip install -e .
# 运行后端服务
cd tradingapi
uvicorn main:app --reload
# 在新终端中安装前端依赖
cd frontend
pnpm install
# 运行前端服务
pnpm dev或者使用 Makefile 简化操作:
# 安装并运行后端
make run-backend
# 安装并运行前端
make run-frontend- 访问主页,点击「数据管理」
- 输入股票代码(如:000001 平安银行)
- 选择日期范围
- 点击「获取数据」
- 数据将自动保存到本地数据库
- 访问「策略回测」页面
- 选择股票和日期范围
- 选择策略(如:双均线交叉)
- 设置策略参数(如:快线周期=5,慢线周期=20)
- 点击「开始回测」
- 查看回测结果和性能指标
TradingLab 提供了完整的 RESTful API,可用于获取股票数据、运行回测和管理策略。
GET /api/v1/stocks: 获取股票列表GET /api/v1/stocks/{code}: 获取单个股票信息GET /api/v1/stocks/{code}/daily: 获取股票日线数据POST /api/v1/backtest/single: 运行单股票回测POST /api/v1/backtest/multiple: 运行多股票回测GET /api/v1/strategies: 获取可用策略列表
完整 API 文档请访问:http://localhost:8000/docs
我们欢迎各种形式的贡献,无论是新功能、文档改进还是 bug 修复。
- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
- 添加新策略:在
backend/tradingapi/strategy/strategies目录下创建新策略 - 添加新指标:在
backend/tradingapi/strategy/indicators目录下添加新指标 - 添加新数据源:在
backend/tradingapi/fetcher/datasources目录下实现新的数据源
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件
TradingLab - 让量化交易成为一场激动人心的科学实验!
- 财报狗: 这是一个优秀的参考案例!



