# 项目架构说明

## 目录结构

```
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
