153 lines
3.4 KiB
Markdown
153 lines
3.4 KiB
Markdown
# 项目架构说明
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
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数据库
|
||
```
|
||
|
||
## 配置管理流程
|
||
|
||
1. **前端修改配置** → API更新数据库
|
||
2. **交易系统启动** → 从数据库读取配置
|
||
3. **配置更新** → 交易系统自动重新加载(下次扫描时)
|
||
|
||
## 数据库设计
|
||
|
||
### 核心表
|
||
|
||
1. **trading_config** - 交易配置
|
||
2. **trades** - 交易记录
|
||
3. **account_snapshots** - 账户快照
|
||
4. **market_scans** - 市场扫描记录
|
||
5. **trading_signals** - 交易信号
|
||
|
||
## 部署方式
|
||
|
||
### 方式1:独立部署(推荐)
|
||
|
||
- 后端:单独服务器或Docker容器
|
||
- 前端:Nginx静态文件服务
|
||
- 交易系统:单独进程(supervisor管理)
|
||
|
||
### 方式2:一体化部署
|
||
|
||
- 后端和交易系统在同一服务器
|
||
- 前端通过Nginx反向代理
|
||
|
||
## 环境变量
|
||
|
||
### 后端
|
||
|
||
```bash
|
||
DB_HOST=localhost
|
||
DB_PORT=3306
|
||
DB_USER=root
|
||
DB_PASSWORD=your_password
|
||
DB_NAME=auto_trade_sys
|
||
CORS_ORIGINS=http://localhost:3000
|
||
```
|
||
|
||
### 前端
|
||
|
||
```bash
|
||
VITE_API_URL=http://localhost:8000
|
||
```
|
||
|
||
## 启动顺序
|
||
|
||
1. MySQL数据库
|
||
2. 后端API服务
|
||
3. 前端应用(开发)或部署前端(生产)
|
||
4. 交易系统
|
||
|
||
## API文档
|
||
|
||
启动后端后访问:
|
||
- Swagger UI: http://localhost:8000/docs
|
||
- ReDoc: http://localhost:8000/redoc
|