# 交易策略优化计划

## 📋 优化目标

根据专业建议，系统化提升：
1. **入场信号质量** (Win Rate Up)
2. **利润捕获能力** (Profit Up)
3. **风险控制** (Survival First)
4. **系统可靠性** (Reliability Up)
5. **小众币专项优化**

---

## 1. 动态过滤：提升入场信号质量 (Win Rate Up)

### 1.1 大盘共振（Beta Filter）✅ 优先实现

**目标**：当BTC或ETH在15min/1h周期剧烈下跌时，自动屏蔽所有多单信号

**实现方案**：
- 在 `strategy.py` 的 `_analyze_trade_signal` 中增加大盘检查
- 获取BTCUSDT和ETHUSDT的15min和1h K线
- 计算最近N根K线的涨跌幅
- 如果BTC或ETH在15min/1h周期下跌超过阈值（如-3%），屏蔽所有多单
- 配置项：`BETA_FILTER_ENABLED`, `BETA_FILTER_THRESHOLD`

**代码位置**：
- `trading_system/strategy.py` - `_analyze_trade_signal()`
- `trading_system/market_scanner.py` - 增加大盘数据获取

### 1.2 波动率阈值

**目标**：避开成交量极低或ATR异常激增的时刻

**实现方案**：
- 在 `market_scanner.py` 中增加波动率检查
- ATR异常激增：当前ATR / 平均ATR > 阈值（如2.0）
- 成交量极低：24H Volume < 配置阈值（如1000万美金）
- 配置项：`ATR_SPIKE_THRESHOLD`, `MIN_VOLUME_24H_STRICT`

**代码位置**：
- `trading_system/market_scanner.py` - `_get_symbol_change()`
- `trading_system/indicators.py` - ATR计算

### 1.3 信号强度分级

**目标**：9-10分信号分配更高权重，8分信号仅作为轻仓试探

**实现方案**：
- 在 `risk_manager.py` 的 `calculate_position_size` 中根据信号强度调整仓位
- 9-10分：使用100%仓位（MAX_POSITION_PERCENT）
- 8分：使用50%仓位（MAX_POSITION_PERCENT * 0.5）
- 配置项：`SIGNAL_STRENGTH_POSITION_MULTIPLIER`

**代码位置**：
- `trading_system/risk_manager.py` - `calculate_position_size()`
- `trading_system/strategy.py` - 传递信号强度

---

## 2. 策略优化：从"固定止盈"到"动态追踪" (Profit Up)

### 2.1 追踪止损（Trailing Stop）

**目标**：当价格达到1:1目标后，利用币安Trailing Stop Order或代码层面根据ATR向上移动止损线

**实现方案**：
- 检查币安是否支持 `TRAILING_STOP_MARKET` 订单类型
- 如果支持：在分步止盈后，挂币安Trailing Stop Order
- 如果不支持：代码层面实现，根据ATR动态调整止损价
- 配置项：`USE_TRAILING_STOP_AFTER_PARTIAL_PROFIT`, `TRAILING_STOP_ATR_MULTIPLIER`

**代码位置**：
- `trading_system/position_manager.py` - 分步止盈后逻辑
- `trading_system/binance_client.py` - Trailing Stop Order支持

### 2.2 ADX趋势强度判断

**目标**：如果ADX > 25且处于上升趋势，延迟第一止盈位触发或取消50%减仓

**实现方案**：
- 在 `indicators.py` 中计算ADX
- 在 `position_manager.py` 的止盈检查中，如果ADX > 25且趋势向上，跳过第一止盈（50%减仓）
- 配置项：`ADX_STRONG_TREND_THRESHOLD`, `ADX_SKIP_PARTIAL_PROFIT`

**代码位置**：
- `trading_system/indicators.py` - ADX计算
- `trading_system/position_manager.py` - 止盈逻辑

---

## 3. 仓位管理：基于风险的头寸缩放 (Survival First)

### 3.1 凯利公式/固定风险百分比

**目标**：根据止损距离反算仓位，确保每笔单子赔掉的钱占总资金的比例恒定（如2%）

**实现方案**：
- 在 `risk_manager.py` 的 `calculate_position_size` 中实现
- 公式：`仓位大小 = (总资金 * 每笔单子承受的风险%) / (入场价 - 止损价)`
- 配置项：`FIXED_RISK_PERCENT`, `USE_FIXED_RISK_SIZING`

**代码位置**：
- `trading_system/risk_manager.py` - `calculate_position_size()`

### 3.2 阶梯杠杆

**目标**：针对小众币，强制限制最高杠杆（如3-5倍）

**实现方案**：
- 在 `risk_manager.py` 的 `calculate_dynamic_leverage` 中增加波动率检查
- 如果ATR过高或成交量过低，限制最高杠杆
- 配置项：`MAX_LEVERAGE_SMALL_CAP`, `ATR_LEVERAGE_REDUCTION_THRESHOLD`

**代码位置**：
- `trading_system/risk_manager.py` - `calculate_dynamic_leverage()`

---

## 4. 基础设施与风控 (Reliability Up)

### 4.1 心跳检测与延迟监控

**目标**：WebSocket断线重连机制 + 每1-2分钟兜底巡检

**实现方案**：
- 在 `position_manager.py` 的WebSocket监控中增加心跳检测
- 如果WebSocket断线，自动重连
- 增加独立的定时巡检任务（每1-2分钟），作为兜底
- 配置项：`WEBSOCKET_HEARTBEAT_INTERVAL`, `FALLBACK_CHECK_INTERVAL`

**代码位置**：
- `trading_system/position_manager.py` - WebSocket监控逻辑

### 4.2 滑点保护

**目标**：使用MARK_PRICE触发，但执行时使用LIMIT单或带保护的MARKET单

**实现方案**：
- 在 `position_manager.py` 的平仓逻辑中
- 使用MARK_PRICE判断是否触发止损/止盈
- 执行时使用LIMIT单（当前价±滑点容差）或带保护的MARKET单
- 配置项：`SLIPPAGE_TOLERANCE_PCT`, `USE_LIMIT_ON_CLOSE`

**代码位置**：
- `trading_system/position_manager.py` - `close_position()`

---

## 5. 针对小众币的专项优化

### 5.1 资金费率避险

**目标**：在费率结算前（8:00, 16:00, 24:00），如果费率过高（>0.1%），提前止盈或暂缓入场

**实现方案**：
- 在 `binance_client.py` 中获取资金费率
- 在 `strategy.py` 中检查是否接近结算时间（8:00, 16:00, 24:00）
- 如果费率 > 0.1%，提前止盈或暂缓入场
- 配置项：`FUNDING_RATE_THRESHOLD`, `FUNDING_RATE_EARLY_EXIT_HOURS`

**代码位置**：
- `trading_system/binance_client.py` - 资金费率获取
- `trading_system/strategy.py` - 入场检查
- `trading_system/position_manager.py` - 止盈检查

### 5.2 成交量验证

**目标**：24H Volume低于1000万美金，直接剔除

**实现方案**：
- 在 `market_scanner.py` 中增加严格成交量过滤
- 配置项：`MIN_VOLUME_24H_STRICT` (10000000)

**代码位置**：
- `trading_system/market_scanner.py` - 扫描过滤

---

## 📊 实施优先级

### ✅ 高优先级（已完成）

1. ✅ **大盘共振（Beta Filter）** - 当BTC/ETH下跌超过-3%时，屏蔽所有多单
2. ✅ **成交量验证（1000万美金）** - 24H Volume低于1000万美金直接剔除
3. ✅ **固定风险百分比仓位计算** - 根据止损距离反算仓位，每笔风险恒定2%
4. ✅ **信号强度分级** - 8分50%仓位，9-10分100%仓位
5. ✅ **阶梯杠杆** - 小众币（ATR>=5%）限制最高杠杆5倍

**预期效果**：
- ✅ 减少大盘暴跌时的损失
- ✅ 避免流动性差的币种，减少滑点损失（2-3%）
- ✅ 每笔单子风险恒定（2%），避免30%的大额亏损
- ✅ 高质量信号获得更大收益，低质量信号降低风险
- ✅ 小众币风险降低，减少强平风险

### ⏳ 中优先级（待实施）

6. ⏳ 波动率阈值 - 避开ATR异常激增的时刻
7. ⏳ 心跳检测与兜底巡检 - WebSocket断线重连和兜底巡检
8. ⏳ 滑点保护 - 使用MARK_PRICE触发，LIMIT单执行

### 中优先级（本周实施）
5. 波动率阈值
6. 信号强度分级
7. 阶梯杠杆（小众币）
8. 滑点保护

### 低优先级（后续优化）
9. 追踪止损（Trailing Stop）
10. ADX趋势强度判断
11. 资金费率避险

---

## 🔧 配置项汇总

```python
# 动态过滤
'BETA_FILTER_ENABLED': True,
'BETA_FILTER_THRESHOLD': -0.03,  # -3%
'ATR_SPIKE_THRESHOLD': 2.0,
'MIN_VOLUME_24H_STRICT': 10000000,  # 1000万美金
'SIGNAL_STRENGTH_POSITION_MULTIPLIER': {8: 0.5, 9: 1.0, 10: 1.0},

# 策略优化
'USE_TRAILING_STOP_AFTER_PARTIAL_PROFIT': True,
'TRAILING_STOP_ATR_MULTIPLIER': 1.5,
'ADX_STRONG_TREND_THRESHOLD': 25,
'ADX_SKIP_PARTIAL_PROFIT': True,

# 仓位管理
'USE_FIXED_RISK_SIZING': True,
'FIXED_RISK_PERCENT': 0.02,  # 2%
'MAX_LEVERAGE_SMALL_CAP': 5,
'ATR_LEVERAGE_REDUCTION_THRESHOLD': 0.05,  # 5%

# 基础设施
'WEBSOCKET_HEARTBEAT_INTERVAL': 30,  # 30秒
'FALLBACK_CHECK_INTERVAL': 120,  # 2分钟
'SLIPPAGE_TOLERANCE_PCT': 0.002,  # 0.2%
'USE_LIMIT_ON_CLOSE': True,

# 小众币优化
'FUNDING_RATE_THRESHOLD': 0.001,  # 0.1%
'FUNDING_RATE_EARLY_EXIT_HOURS': 1,  # 结算前1小时
```
