auto_trade_sys/README_ARCHITECTURE.md
薇薇安 8a89592cb5 a
2026-01-13 17:30:59 +08:00

153 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目架构说明
## 目录结构
```
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/)
**技术栈:**
- FastAPIRESTful API框架
- PyMySQLMySQL数据库连接
- 数据库MySQL
**功能:**
- 配置管理API从数据库读取/更新配置)
- 交易记录API
- 统计分析API
- 仪表板数据API
**部署:**
- 独立部署,可单独运行
- 端口8000可配置
- 支持CORS允许前端跨域访问
### 2. 前端应用 (frontend/)
**技术栈:**
- React 18
- Vite构建工具
- React Router路由
- Recharts图表库
- AxiosHTTP请求
**功能:**
- 配置管理界面(可视化配置交易参数)
- 交易记录查看(历史交易和统计)
- 仪表板(实时账户和持仓信息)
**部署:**
- 独立部署,可单独运行
- 开发端口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