# 交易系统 (Trading System)

币安自动交易系统核心模块

## 目录结构

```
trading_system/
├── __init__.py
├── main.py              # 主程序入口
├── recommendations_main.py  # 推荐服务入口（独立进程：只生成推荐，不自动交易）
├── config.py            # 配置文件
├── binance_client.py    # 币安客户端
├── market_scanner.py    # 市场扫描器
├── risk_manager.py      # 风险管理
├── position_manager.py  # 仓位管理
├── strategy.py          # 交易策略
├── indicators.py        # 技术指标
└── requirements.txt     # 依赖
```

## 功能

- 自动市场扫描（1小时主周期）
- 技术指标分析（RSI、MACD、布林带等）
- 高胜率交易策略（均值回归+趋势跟踪）
- 严格风险控制
- 动态止损止盈
- 数据库集成（记录交易数据）

## 运行

### 方式1：直接运行（推荐）

```bash
cd trading_system
python main.py
```

### 推荐服务（独立进程）

推荐用于“普通用户查看”，建议与自动交易拆开启动（避免自动交易等待成交时拖慢推荐生成）。

```bash
# 从项目根目录运行
python -m trading_system.recommendations_main
```

常用环境变量（可选）：

- `RECOMMEND_SCAN_INTERVAL_SEC`: 推荐生成间隔（秒），默认 60
- `RECOMMEND_MIN_SIGNAL_STRENGTH`: 推荐最小强度，默认 5
- `RECOMMEND_MAX_RECOMMENDATIONS`: 单次最大推荐数量，默认 60
- `RECOMMEND_MIN_QUALITY_SCORE`: 质量分过滤，默认 0.0
- `RECOMMEND_SCAN_CACHE_NAMESPACE`: 扫描缓存命名空间，默认 recommend
- `RECOMMEND_LOG_FILE`: 推荐服务日志文件，默认 recommendations_bot.log

### 方式2：从项目根目录运行

```bash
python -m trading_system.main
```

## 配置

配置优先从数据库读取，回退到环境变量和默认值。

配置文件：`config.py`

## 安装依赖

### 方式1：使用安装脚本（推荐）

```bash
cd trading_system
./setup.sh
```

### 方式2：手动创建虚拟环境

```bash
# 在项目根目录创建虚拟环境
cd ..
python3 -m venv .venv

# 激活虚拟环境
source .venv/bin/activate  # Linux/Mac
# 或 .venv\Scripts\activate  # Windows

# 安装依赖
cd trading_system
pip install -r requirements.txt
```

### 方式3：使用项目根目录的虚拟环境

如果项目根目录已有虚拟环境（与backend共享）：

```bash
# 激活虚拟环境
source ../.venv/bin/activate  # 从trading_system目录
# 或 source .venv/bin/activate  # 从项目根目录

# 安装依赖
pip install -r requirements.txt
```

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