auto_trade_sys/docs/TRADING_PERFORMANCE_ANALYSIS.md
薇薇安 86b85c2609 a
2026-01-25 11:19:39 +08:00

291 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 交易表现分析 - 2026-01-23
## 📊 今日统计
- **总交易数**35
- **胜率**44.00%
- **总盈亏**2.03 USDT
- **平均盈亏**0.08 USDT
- **平均持仓时长**35分钟
- **平仓原因**:止盈 1 / 手动 9 / 同步 15
- **平均盈利/平均亏损**1.35 : 1期望 3:1
- **总交易量(名义)**3512.05 USDT
## ⚠️ 严重问题分析
### 问题1盈亏比严重失衡1.35:1 vs 期望3:1
**现状**
- 平均盈利/平均亏损 = 1.35:1
- 胜率 = 44%
- 期望盈亏比 = 3:1
**数学分析**
- 盈亏平衡点 = 1 / (1 + 盈亏比) = 1 / (1 + 1.35) = **42.55%**
- 当前胜率 44% 仅略高于盈亏平衡点,所以总盈亏只有 2.03 USDT几乎不盈利
- 如果盈亏比达到 3:1盈亏平衡点 = 1 / (1 + 3) = **25%**
- 在胜率 44% 的情况下,盈亏比 3:1 的期望收益 = (0.44 × 3) - (0.56 × 1) = **0.76**每笔亏损赚0.76倍)
**结论**:盈亏比 1.35:1 太低了,必须提升到至少 2:1 才能稳定盈利。
---
### 问题2大额亏损30-50%)说明止损失效
**具体案例**
- #1138 DUSKUSDT: **-31.28%**(同步平仓)
- #1135 RIVERUSDT: **-49.06%**(同步平仓)
- #1133 BDXNUSDT: **-31.69%**(手动平仓)
**问题分析**
1. **固定风险百分比应该限制亏损为2%**但实际亏损达到30-50%
2. **说明止损没有及时执行**,或者止损价格计算错误
3. **"同步平仓"** 可能是在止损触发后,系统同步币安状态时发现已经亏损很大
**可能原因**
1. 止损单没有正确挂到交易所
2. 止损价格计算错误(可能基于价格百分比而不是保证金百分比)
3. WebSocket 监控断线,没有及时触发止损
4. 固定风险百分比计算时,止损距离估算错误
---
### 问题3止盈太少35笔只有1笔止盈
**现状**
- 35笔交易只有1笔止盈2.86%
- 15笔同步平仓9笔手动平仓
**问题分析**
1. **止盈目标可能设置太高**`ATR_TAKE_PROFIT_MULTIPLIER = 1.5` 可能仍然太高
2. **大部分订单被提前平仓**15笔同步平仓可能是止损触发9笔手动平仓可能是用户干预
3. **止盈单可能没有正确挂到交易所**
---
### 问题4固定风险百分比可能没有生效
**理论**
- 固定风险百分比 = 2%
- 如果止损距离 = 5%,那么仓位 = (总资金 × 2%) / 5% = 总资金的 40%
- 如果止损触发,亏损 = 总资金的 2%(符合预期)
**实际情况**
- 亏损达到 30-50%,说明:
1. 固定风险百分比没有生效
2. 或者止损距离计算错误(止损距离太小,导致仓位过大)
3. 或者止损没有及时触发
---
## 🔍 根本原因分析
### 1. 止损执行问题
**可能原因**
- 止损单没有正确挂到交易所
- WebSocket 监控断线,没有及时触发止损
- 止损价格计算错误
**验证方法**
- 查看日志,确认止损单是否成功挂到交易所
- 检查 WebSocket 监控是否正常运行
- 检查止损价格计算逻辑
### 2. 固定风险百分比可能没有生效
**验证方法**
- 检查 `USE_FIXED_RISK_SIZING` 是否启用
- 检查开仓日志,确认是否使用了固定风险计算
- 检查止损距离估算是否准确
### 3. 止盈目标设置问题
**当前配置**
- `ATR_TAKE_PROFIT_MULTIPLIER = 1.5`
- `TAKE_PROFIT_PERCENT = 25%`(相对于保证金)
**问题**
- 如果 ATR 很大1.5倍 ATR 的止盈目标可能很难达到
- 25% 的止盈目标对于小币种可能太高
---
## 💡 解决方案
### 方案1确保止损正确执行最高优先级
1. **检查止损单是否挂到交易所**
- 在开仓后立即检查止损单状态
- 如果挂单失败,重试或报警
2. **增强 WebSocket 监控可靠性**
- 增加心跳检测
- 增加断线重连机制
- 增加兜底巡检每1-2分钟检查一次
3. **修复止损价格计算**
- 确保止损基于保证金百分比,而不是价格百分比
- 确保止损距离估算准确
### 方案2验证并修复固定风险百分比
1. **检查配置**
- 确认 `USE_FIXED_RISK_SIZING = True`
- 确认 `FIXED_RISK_PERCENT = 0.02`2%
2. **检查计算逻辑**
- 确认止损距离估算准确
- 确认仓位计算使用了固定风险公式
3. **增加日志**
- 记录固定风险计算的详细过程
- 记录实际止损距离和仓位大小
### 方案3调整止盈目标
1. **降低止盈目标**
- `ATR_TAKE_PROFIT_MULTIPLIER` 从 1.5 降到 1.2
- `TAKE_PROFIT_PERCENT` 从 25% 降到 20%
2. **确保止盈单正确挂到交易所**
- 在开仓后立即挂止盈单
- 检查止盈单状态
---
## 📋 立即行动清单
### 高优先级(立即执行)
1.**检查止损单挂单状态**
- 在开仓后立即检查止损单是否成功挂到交易所
- 如果失败,重试或报警
2.**验证固定风险百分比是否生效**
- 检查开仓日志,确认是否使用了固定风险计算
- 如果未生效,修复计算逻辑
3.**增强止损执行可靠性**
- 增加 WebSocket 心跳检测
- 增加兜底巡检每1-2分钟检查一次
### 中优先级(本周执行)
4.**调整止盈目标**
- 降低 `ATR_TAKE_PROFIT_MULTIPLIER` 到 1.2
- 降低 `TAKE_PROFIT_PERCENT` 到 20%
5.**增加诊断日志**
- 记录止损单挂单状态
- 记录固定风险计算过程
- 记录实际止损距离
---
## 🎯 目标指标
### 当前表现
- 盈亏比1.35:1 ❌
- 胜率44% ✅
- 总盈亏2.03 USDT几乎不盈利
### 目标表现
- 盈亏比:≥ 2.0:1理想 3:1
- 胜率:≥ 40% ✅
- 单笔最大亏损:≤ 5%固定风险2% + 滑点)✅
- 止盈率:≥ 30%35笔中至少10笔止盈
---
## 📝 下一步
1.**已修复**:固定风险百分比计算逻辑(已添加到代码中)
2.**已增强**:止损单挂单状态日志(成功/失败都会记录)
3.**待验证**重新运行后观察是否还有30%以上的亏损
4.**待调整**:降低止盈目标,提高止盈率
---
## 🔧 已实施的修复
### 1. ✅ 修复固定风险百分比计算逻辑
**问题**:固定风险百分比计算逻辑缺失,导致系统没有使用固定风险公式计算仓位。
**修复**
-`risk_manager.py``calculate_position_size()` 中添加了完整的固定风险百分比计算逻辑
- 如果 `USE_FIXED_RISK_SIZING = True` 且提供了 `entry_price``side`,会使用固定风险公式
- 公式:`quantity = (总资金 × 2%) / (入场价 - 止损价)`
### 2. ✅ 增强止损单挂单状态日志
**问题**:无法知道止损单是否成功挂到交易所。
**修复**
-`position_manager.py``_ensure_exchange_sltp_orders()` 中增加了日志
- 止损单和止盈单挂单成功/失败都会记录日志
- 如果挂单失败会明确提示将依赖WebSocket监控
---
## ⚠️ 关键发现
### 为什么会出现30-50%的亏损?
**根本原因**
1. **固定风险百分比没有生效**(已修复)
- 如果固定风险百分比生效每笔亏损应该限制在2%
- 但实际亏损达到30-50%,说明固定风险百分比没有生效
2. **止损单可能没有正确挂到交易所**
- 如果止损单挂单失败系统只能依赖WebSocket监控
- 如果WebSocket断线止损可能无法及时执行
3. **止损价格计算可能有问题**
- 止损可能基于价格百分比而不是保证金百分比
- 或者止损距离估算错误
### 为什么盈亏比只有1.35:1
**原因**
1. **止盈目标设置太高**`ATR_TAKE_PROFIT_MULTIPLIER = 1.5` 可能仍然太高
2. **止盈单可能没有正确挂到交易所**只有1笔止盈说明大部分订单没有达到止盈目标
3. **大部分订单被提前平仓**15笔同步平仓可能是止损9笔手动平仓用户干预
---
## 🎯 预期改善
修复后,预期:
-**单笔最大亏损**从30-50%降低到≤5%固定风险2% + 滑点)
-**盈亏比**从1.35:1提升到≥2.0:1通过降低止盈目标
-**止盈率**从2.86%提升到≥30%(通过降低止盈目标)
---
## 📋 建议的配置调整
### 立即调整在GlobalConfig中
1. **降低止盈目标**
- `ATR_TAKE_PROFIT_MULTIPLIER`: 1.5 → **1.2**
- `TAKE_PROFIT_PERCENT`: 25% → **20%**
2. **确保固定风险百分比启用**
- `USE_FIXED_RISK_SIZING`: **True**
- `FIXED_RISK_PERCENT`: **0.02** (2%)
3. **确保止损单挂单**
- `EXCHANGE_SLTP_ENABLED`: **True**(默认已启用)
---
## 🔍 验证方法
修复后,请观察:
1. **开仓日志**:是否显示"使用固定风险百分比计算仓位"
2. **止损单日志**:是否显示"止损单已成功挂到交易所"
3. **实际亏损**是否还有30%以上的亏损
4. **止盈率**是否提升到30%以上