一个量化交易系统
Last updated Jul 7, 2026
172
Stars
36
Forks
1
Issues
+1
Stars/day
Attention Score
73
Topics
Language breakdown
No language data available.
▸ Files
click to expand
README
量化交易系统
基于Vue3 + Express构建的现代化量化交易平台,集成数据获取、策略开发、回测分析、实时监控等核心功能。
🚀 快速开始
环境要求
- Node.js >= 18.0.0
- PostgreSQL >= 14
- Redis >= 7.0
- Docker & Docker Compose (可选)
1. 克隆项目
git clone <repository-url>
cd my-quant
2. 环境变量配置
# 复制环境变量模板文件
cp .env.example .env
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
根据需要修改环境变量(可选,默认配置可以正常运行)
nano .env
nano backend/.env
nano frontend/.env
3. 安装依赖
# 一键安装所有依赖(推荐)
npm run install:all
或分别安装
npm install # 根目录依赖
cd backend && npm install # 后端依赖
cd ../frontend && npm install # 前端依赖
4. 数据库初始化
# 初始化数据库
cd backend
npm run db:generate # 生成Prisma客户端
npm run db:migrate # 运行数据库迁移
npm run db:seed # 填充初始数据(如果存在)
5. 启动服务
方式一:同时启动前后端(推荐)
# 回到根目录
cd ..
npm run dev # 前端: http://localhost:3000, 后端: http://localhost:8000
方式二:分别启动
# 启动后端
npm run dev:backend # 后端: http://localhost:8000
启动前端(新终端)
npm run dev:frontend # 前端: http://localhost:3000
6. 验证安装
- 打开浏览器访问: http://localhost:3000
- 检查后端API: http://localhost:8000/health
- 查看日志确认服务正常运行
7. Docker 部署(可选)
# 使用Docker一键部署
npm run docker:up
查看服务状态
npm run docker:logs
停止服务
npm run docker:down
📋 功能特性
🔧 核心模块
- 数据管理: 多数据源集成,实时行情数据获取
- 策略开发: 在线策略编辑器,支持多种策略类型
- 回测引擎: 历史数据回测,性能分析报告
- 实盘交易: 连接券商API,自动交易执行
- 监控告警: 实时监控,多渠道告警通知
🎯 技术特色
- 现代化技术栈: Vue3 + TypeScript + Express
- 响应式设计: 适配多种设备
- 实时数据推送: WebSocket实时数据
- 高性能: 异步处理,缓存优化
- 容器化部署: Docker一键部署
🖼️ 界面展示
首页仪表板
策略管理
交易功能
数据与分析
回测系统
参数优化
系统管理
📁 项目结构
quant-trading-system/
├── doc/ # 文档目录
│ ├── 需求.md # 需求文档
│ └── 架构设计.md # 架构设计
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── components/ # 组件
│ │ ├── views/ # 页面
│ │ ├── stores/ # 状态管理
│ │ └── api/ # API接口
│ └── package.json
├── backend/ # 后端应用
│ ├── src/
│ │ ├── controllers/ # 控制器
│ │ ├── services/ # 业务逻辑
│ │ ├── models/ # 数据模型
│ │ └── routes/ # 路由
│ └── package.json
├── images/ # 图片资源
│ └── readme/ # README图片
├── docker/ # Docker配置
├── docker-compose.yml # 容器编排
└── package.json # 根目录配置
🔧 配置说明
环境变量配置
项目已经提供了完整的环境变量模板文件,用户只需要复制并根据需要修改:
根目录配置 (.env)
# 主要用于Docker部署和全局配置
POSTGRES_PASSWORD=quant123 # PostgreSQL密码
REDIS_PASSWORD=redis123 # Redis密码
JWT_SECRET=your-jwt-secret # JWT密钥(生产环境请修改)
NODE_ENV=development # 运行环境
PORT=8000 # 后端端口
后端配置 (backend/.env)
# 数据库连接
DATABASEURL=postgresql://quant:quant123@localhost:5432/quanttrading
Redis连接
REDIS_URL=redis://localhost:6379
JWT配置
JWT_SECRET=your-secret-key-change-in-production
JWTEXPIRESIN=7d
服务器配置
PORT=8000
NODE_ENV=development
CORS_ORIGIN=http://localhost:3000
Bybit API配置(测试网)
BYBITAPIBASE_URL=https://api-testnet.bybit.com
BYBITAPIKEY=<YOURAPIKEY>
BYBITAPISECRET=<YOURAPISECRET>
BYBIT_TESTNET=true
前端配置 (frontend/.env)
# API配置
VITEAPIURL=http://localhost:8000/api
VITEWSURL=http://localhost:8000/socket.io
生产环境配置示例
VITEAPIURL=https://your-domain.com/api
VITEWSURL=https://your-domain.com/socket.io
数据库配置
# 进入后端目录
cd backend
生成Prisma客户端
npm run db:generate
运行数据库迁移
npm run db:migrate
查看数据库管理界面
npm run db:studio
推送schema更改(开发时)
npm run db:push
服务依赖
确保以下服务在启动前已经运行:
PostgreSQL
# 使用Docker启动PostgreSQL
docker run -d --name postgres \
-e POSTGRES_USER=quant \
-e POSTGRES_PASSWORD=quant123 \
-e POSTGRESDB=quanttrading \
-p 5432:5432 \
postgres:14
或使用系统安装的PostgreSQL
sudo systemctl start postgresql
Redis
# 使用Docker启动Redis
docker run -d --name redis \
-p 6379:6379 \
redis:7-alpine
或使用系统安装的Redis
sudo systemctl start redis
📊 API文档
认证接口
POST /api/auth/login- 用户登录POST /api/auth/register- 用户注册GET /api/auth/profile- 获取用户信息
策略管理
GET /api/strategies- 获取策略列表POST /api/strategies- 创建策略PUT /api/strategies/:id- 更新策略DELETE /api/strategies/:id- 删除策略
数据接口
GET /api/data/market/:symbol- 获取实时行情GET /api/data/history/:symbol- 获取历史数据GET /api/data/indicators/:symbol- 获取技术指标
回测接口
POST /api/backtest/run- 运行回测GET /api/backtest/results/:id- 获取回测结果
系统管理
GET /api/system/logs- 获取系统日志GET /api/users- 用户管理 (管理员)GET /api/monitoring- 系统监控
🚀 部署指南
生产环境部署
- 配置环境变量
- 构建应用:
npm run build - 启动服务:
npm run docker:up
监控配置
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3001 (admin/admin123)
🤝 开发指南
代码规范
- 使用TypeScript编写类型安全的代码
- 遵循ESLint和Prettier规范
- 编写单元测试和集成测试
提交规范
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式化
- refactor: 代码重构
- test: 测试相关
- chore: 构建工具或辅助工具的变动
🛠️ 开发命令
根目录命令
npm run install:all # 安装所有依赖
npm run dev # 同时启动前端和后端
npm run build # 构建所有应用
npm run test # 运行测试
npm run docker:up # 启动所有服务
npm run docker:down # 停止所有服务
npm run docker:logs # 查看服务日志
后端命令
cd backend
npm run dev # 启动后端开发服务器
npm run build # 构建后端应用
npm run test # 运行后端测试
npm run db:generate # 生成Prisma客户端
npm run db:migrate # 运行数据库迁移
npm run db:push # 推送schema更改
npm run db:studio # 打开数据库管理界面
npm run lint # ESLint检查和修复
npm run format # Prettier格式化
前端命令
cd frontend
npm run dev # 启动前端开发服务器
npm run build # 构建前端应用
npm run preview # 预览生产构建
npm run test # 运行前端测试
npm run lint # ESLint检查和修复
npm run format # Prettier格式化
📝 许可证
MIT License
🛠️ 故障排除
常见问题
1. 依赖安装失败
# 清除缓存重新安装
npm cache clean --force
rm -rf node_modules package-lock.json
npm run install:all
2. 数据库连接失败
# 检查PostgreSQL服务状态
sudo systemctl status postgresql
检查端口占用
netstat -tuln | grep 5432
测试数据库连接
cd backend && npm run test:connection
3. Redis连接失败
# 检查Redis服务状态
sudo systemctl status redis
测试Redis连接
redis-cli ping
4. 端口占用问题
# 查看端口占用
netstat -tuln | grep :3000
netstat -tuln | grep :8000
修改端口(在.env文件中)
PORT=8001 # 后端端口
CORS_ORIGIN=http://localhost:3001 # 前端端口
5. 权限问题
# 给予脚本执行权限
chmod +x deploy.sh
chmod +x docker-compose.yml
修复文件权限
sudo chown -R $USER:$USER /path/to/project
日志查看
后端日志
# 查看后端运行日志
npm run dev:backend
或查看应用日志
tail -f logs/app.log
前端日志
# 查看前端构建日志
npm run dev:frontend
查看浏览器控制台
按 F12 打开开发者工具
性能优化
开发环境优化
# 使用软链接加快构建
ln -s /path/to/nodemodules ./nodemodules
增加内存限制
export NODE_OPTI
生产环境优化
# 构建优化版本
npm run build:optimized
使用PM2管理进程
npm run pm2:start
🙋♂️ 支持
获取帮助
- 📧 邮箱: support@example.com
- 🐛 问题反馈: GitHub Issues
- 📖 文档: Wiki
- 💬 讨论: GitHub Discussions
贡献指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
系统特点: 本系统采用微服务架构,支持高并发处理,具备完善的权限管理和数据安全保障。适合个人投资者和小型机构使用。
快速开始: 按照上面的步骤,从克隆项目到成功运行大约需要 5-10 分钟。
🔗 More in this category