# 币安自动交易系统 (Binance Automated Trading System)

基于币安API的Python自动交易系统，实现自动发现涨跌幅最大的货币对并执行交易策略。

**文档导航**：详细文档列表与优先阅读顺序见 [INDEX.md](INDEX.md)。历史/一次性分析已移至 [archive/](archive/)。

## 项目结构

```
auto_trade_sys/
├── trading_system/      # 交易系统核心（Python）
│   ├── main.py         # 主程序入口
│   ├── config.py       # 配置文件
│   ├── binance_client.py
│   ├── market_scanner.py
│   ├── risk_manager.py
│   ├── position_manager.py
│   ├── strategy.py
│   └── ...
│
├── backend/            # 后端服务（FastAPI + MySQL）
│   ├── api/           # FastAPI应用
│   ├── database/      # 数据库
│   └── ...
│
├── frontend/           # 前端应用（React）
│   ├── src/
│   └── ...
│
└── [文档文件]
```

**注意**：根目录不再有 `main.py`，请直接运行 `trading_system/main.py`。
```

## 快速开始

### 1. 初始化数据库

```bash
mysql -u root -p < backend/database/init.sql
cd backend
python init_config.py
```

### 2. 创建虚拟环境（推荐）

```bash
# 在项目根目录创建虚拟环境（供backend和trading_system共享）
python3 -m venv .venv
source .venv/bin/activate  # Linux/Mac
# 或 .venv\Scripts\activate  # Windows
```

### 3. 启动后端服务

```bash
cd backend
pip install -r requirements.txt
export DB_HOST=localhost DB_USER=root DB_PASSWORD=xxx DB_NAME=auto_trade_sys
uvicorn api.main:app --host 0.0.0.0 --port 8000
```

### 4. 启动前端

```bash
cd frontend
npm install
npm run dev
```

### 5. 安装并启动交易系统

```bash
# 方式1：使用安装脚本（推荐）
cd trading_system
./setup.sh

# 然后运行（确保虚拟环境已激活）
source ../.venv/bin/activate  # 或 source .venv/bin/activate
python main.py

# 方式2：手动安装
cd trading_system
source ../.venv/bin/activate  # 激活虚拟环境
pip install -r requirements.txt
python main.py
```

**注意**：现代 Linux 系统（如 Ubuntu 22.04+）不允许直接在系统 Python 中安装包，必须使用虚拟环境。详见 `INSTALL.md`。

## 功能特性

1. **自动市场扫描**：每1小时扫描所有USDT永续合约，发现涨跌幅最大的前10个货币对
2. **智能交易**：基于技术指标的高胜率策略（预期胜率60-70%）
3. **严格仓位控制**：
   - 单笔最大仓位：账户余额的5%
   - 总仓位上限：账户余额的30%
4. **风险控制**：
   - 自动止损：3%（动态调整）
   - 自动止盈：5%
   - 移动止损：保护利润
5. **可视化配置**：通过Web界面管理所有配置
6. **数据统计**：查看交易记录、胜率、盈亏分析

## 技术栈

### 交易系统
- Python 3.10+
- python-binance
- asyncio
- 技术指标计算

### 后端
- FastAPI
- PyMySQL
- MySQL

### 前端
- React 18
- Vite
- Recharts

## 配置说明

### 1小时主周期配置

- **主周期**: 1小时
- **确认周期**: 4小时
- **入场周期**: 15分钟
- **扫描间隔**: 1小时

### 配置管理

- 通过前端界面：http://localhost:3000/config
- 配置自动保存到数据库
- 交易系统自动读取新配置

## 文档

- `QUICK_START.md` - 快速开始指南
- `INSTALL.md` - 安装指南（虚拟环境设置）
- `DEPLOYMENT.md` - 部署指南
- `README_ARCHITECTURE.md` - 架构说明
- `PROJECT_SUMMARY.md` - 项目总结
- `trading_system/README.md` - 交易系统文档
- `backend/README.md` - 后端文档
- `frontend/README.md` - 前端文档

## 部署

### 独立部署

- **后端**: 可单独部署到服务器
- **前端**: 可单独部署（Nginx静态文件）
- **交易系统**: 可单独运行（supervisor管理）

详见 `DEPLOYMENT.md`

## 注意事项

1. **数据库**: 确保MySQL服务运行
2. **API密钥**: 在配置界面或环境变量中设置
3. **测试网**: 建议先在测试网运行
4. **风险提示**: 加密货币交易存在高风险

## 许可证

本项目仅供学习和研究使用，使用者需自行承担交易风险。
