# 项目架构说明 ## 目录结构 ``` 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