3.4 KiB
3.4 KiB
项目架构说明
目录结构
auto_trade_sys/
├── backend/ # 后端服务(FastAPI + MySQL)
│ ├── api/ # FastAPI应用
│ │ ├── main.py # API入口
│ │ ├── routes/ # API路由
│ │ └── models/ # API模型
│ ├── database/ # 数据库
│ │ ├── connection.py
│ │ ├── models.py
│ │ └── init.sql
│ ├── config_manager.py # 配置管理器
│ └── requirements.txt
│
├── frontend/ # 前端应用(React)
│ ├── src/
│ │ ├── components/ # React组件
│ │ ├── services/ # API服务
│ │ └── App.jsx
│ ├── package.json
│ └── vite.config.js
│
└── [交易系统文件] # 原有交易系统
├── main.py
├── strategy.py
├── position_manager.py
└── ...
架构说明
1. 后端服务 (backend/)
技术栈:
- FastAPI:RESTful API框架
- PyMySQL:MySQL数据库连接
- 数据库:MySQL
功能:
- 配置管理API(从数据库读取/更新配置)
- 交易记录API
- 统计分析API
- 仪表板数据API
部署:
- 独立部署,可单独运行
- 端口:8000(可配置)
- 支持CORS,允许前端跨域访问
2. 前端应用 (frontend/)
技术栈:
- React 18
- Vite:构建工具
- React Router:路由
- Recharts:图表库
- Axios:HTTP请求
功能:
- 配置管理界面(可视化配置交易参数)
- 交易记录查看(历史交易和统计)
- 仪表板(实时账户和持仓信息)
部署:
- 独立部署,可单独运行
- 开发端口:3000
- 生产构建:
npm run build
3. 交易系统
功能:
- 自动交易逻辑
- 从数据库读取配置(优先)
- 记录交易数据到数据库
- 记录账户快照
- 记录市场扫描结果
- 记录交易信号
数据流
前端界面 → API请求 → FastAPI后端 → MySQL数据库
↓
交易系统 ← 读取配置 ← 配置管理器 ← MySQL数据库
↓
执行交易 → 记录数据 → MySQL数据库
配置管理流程
- 前端修改配置 → API更新数据库
- 交易系统启动 → 从数据库读取配置
- 配置更新 → 交易系统自动重新加载(下次扫描时)
数据库设计
核心表
- trading_config - 交易配置
- trades - 交易记录
- account_snapshots - 账户快照
- market_scans - 市场扫描记录
- trading_signals - 交易信号
部署方式
方式1:独立部署(推荐)
- 后端:单独服务器或Docker容器
- 前端:Nginx静态文件服务
- 交易系统:单独进程(supervisor管理)
方式2:一体化部署
- 后端和交易系统在同一服务器
- 前端通过Nginx反向代理
环境变量
后端
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=auto_trade_sys
CORS_ORIGINS=http://localhost:3000
前端
VITE_API_URL=http://localhost:8000
启动顺序
- MySQL数据库
- 后端API服务
- 前端应用(开发)或部署前端(生产)
- 交易系统
API文档
启动后端后访问:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc