187 lines
6.3 KiB
Markdown
187 lines
6.3 KiB
Markdown
# 交易策略问题诊断报告 - 2026-01-28
|
||
|
||
## 📊 今日交易统计
|
||
|
||
- **总交易数**:12
|
||
- **胜率**:16.67%(2个止盈,10个止损)
|
||
- **总盈亏**:-3.07 USDT
|
||
- **平均盈亏**:-0.26 USDT
|
||
- **平均持仓时长**:80分钟
|
||
- **平均盈利 / 平均亏损**:1.00 : 1(期望3:1)
|
||
|
||
## 🔍 问题分析
|
||
|
||
### 1. **止损执行问题(最严重)**
|
||
|
||
**现象**:
|
||
- 配置止损:12%(基于保证金)
|
||
- 实际亏损:-11% 到 -25%
|
||
- 所有止损单都超过了配置的12%
|
||
|
||
**可能原因**:
|
||
1. **ATR止损计算问题**:
|
||
- `ATR_STOP_LOSS_MULTIPLIER = 1.5`
|
||
- 如果ATR很小,`ATR * 1.5` 可能小于12%保证金止损
|
||
- 代码选择"更紧的止损"(取最大值),可能选择了ATR止损,但ATR止损可能对应更高的保证金百分比
|
||
|
||
2. **止损单挂单失败**:
|
||
- 如果交易所止损单挂单失败,只能依赖WebSocket监控
|
||
- WebSocket断开时,可能无法及时止损
|
||
|
||
3. **止损价计算错误**:
|
||
- 对于SELL单,止损价应该高于入场价
|
||
- 如果计算错误,可能导致止损价设置不合理
|
||
|
||
### 2. **入场信号质量问题**
|
||
|
||
**现象**:
|
||
- 同一交易对反复开仓(AXLUSDT 7次,1INCHUSDT 4次)
|
||
- 胜率极低(16.67%)
|
||
- 很多单子都在震荡市开仓
|
||
|
||
**可能原因**:
|
||
1. **市场状态判断不准确**:
|
||
- `AUTO_TRADE_ONLY_TRENDING = True`,但可能把震荡市误判为趋势市
|
||
- `detect_market_regime` 的判断条件可能不够严格:
|
||
- `ma_diff_pct > 2` 且 `volatility_pct > 1` 就判断为趋势
|
||
- 这个条件可能太宽松
|
||
|
||
2. **信号强度门槛不够高**:
|
||
- `MIN_SIGNAL_STRENGTH = 7`
|
||
- 但可能还是不够严格,导致在震荡市也开仓
|
||
|
||
3. **4H趋势判断不准确**:
|
||
- 如果4H趋势判断错误,可能导致逆势开仓
|
||
|
||
### 3. **止损/止盈比例失衡**
|
||
|
||
**现象**:
|
||
- 止损:-11% 到 -25%
|
||
- 止盈:+18% 到 +20%
|
||
- 盈亏比:1.00 : 1(期望3:1)
|
||
|
||
**问题**:
|
||
- 止损太宽(实际亏损远超配置的12%)
|
||
- 止盈相对较紧(10%),但实际止盈在18-20%,说明可能触发了第二目标止盈
|
||
- 盈亏比严重失衡,无法盈利
|
||
|
||
### 4. **交易对选择问题**
|
||
|
||
**现象**:
|
||
- 集中在少数几个交易对(AXLUSDT、1INCHUSDT)
|
||
- 反复开仓,说明可能在震荡市反复触发信号
|
||
|
||
**可能原因**:
|
||
- 扫描逻辑可能对某些交易对有偏好
|
||
- 冷却时间可能不够(`ENTRY_SYMBOL_COOLDOWN_SEC = 1800秒 = 30分钟`)
|
||
|
||
## 🎯 核心问题总结
|
||
|
||
### 问题1:止损执行失效
|
||
- **配置**:12%止损
|
||
- **实际**:-11% 到 -25%
|
||
- **影响**:单笔亏损过大,无法控制风险
|
||
|
||
### 问题2:入场信号质量低
|
||
- **配置**:MIN_SIGNAL_STRENGTH=7,AUTO_TRADE_ONLY_TRENDING=True
|
||
- **实际**:胜率16.67%,反复开仓
|
||
- **影响**:大量无效交易,消耗资金
|
||
|
||
### 问题3:市场状态判断不准确
|
||
- **配置**:只在trending市场交易
|
||
- **实际**:可能在ranging市场也开仓
|
||
- **影响**:震荡市频繁止损
|
||
|
||
### 问题4:止损/止盈比例失衡
|
||
- **配置**:止损12%,止盈10%,盈亏比期望3:1
|
||
- **实际**:止损-11%到-25%,止盈18-20%,盈亏比1:1
|
||
- **影响**:无法实现盈利目标
|
||
|
||
## 💡 优化建议
|
||
|
||
### 优先级P0(立即修复)
|
||
|
||
1. **修复止损执行问题**:
|
||
- 检查ATR止损计算逻辑,确保止损价对应的保证金百分比不超过配置值
|
||
- 确保止损单能成功挂到交易所
|
||
- 如果止损单挂单失败,立即平仓而不是依赖WebSocket
|
||
|
||
2. **收紧入场条件**:
|
||
- 提高 `MIN_SIGNAL_STRENGTH` 从7到9
|
||
- 加强市场状态判断,确保只在真正的趋势市开仓
|
||
- 增加4H趋势确认,禁止在neutral趋势开仓
|
||
|
||
3. **修复止损计算**:
|
||
- 确保止损价对应的保证金百分比不超过配置的12%
|
||
- 如果ATR止损对应更高的保证金百分比,应该使用保证金止损
|
||
|
||
### 优先级P1(后续优化)
|
||
|
||
1. **优化市场状态判断**:
|
||
- 提高trending判断的阈值
|
||
- 增加更多指标确认(ADX、趋势线等)
|
||
|
||
2. **增加交易对冷却时间**:
|
||
- 将 `ENTRY_SYMBOL_COOLDOWN_SEC` 从30分钟增加到60分钟
|
||
- 避免同一交易对频繁开仓
|
||
|
||
3. **优化止损/止盈比例**:
|
||
- 如果止损实际执行在-15%左右,止盈应该相应调整到15-20%
|
||
- 或者收紧止损,确保实际止损在12%以内
|
||
|
||
## 🔧 具体修复方案
|
||
|
||
### ✅ 修复1:确保止损不超过配置值(已完成)
|
||
|
||
在 `risk_manager.py` 的 `get_stop_loss_price` 中添加验证逻辑:
|
||
- 计算最终止损价对应的保证金百分比
|
||
- 如果超过配置的 `STOP_LOSS_PERCENT`,强制使用保证金止损
|
||
- 记录警告日志,便于排查问题
|
||
|
||
**修复位置**:`trading_system/risk_manager.py` 第762-770行
|
||
|
||
### ✅ 修复2:提高入场门槛(已完成)
|
||
|
||
- `MIN_SIGNAL_STRENGTH`: 7 → 9(大幅提高门槛)
|
||
- `SMART_ENTRY_STRONG_SIGNAL`: 7 → 9(保持一致)
|
||
- `SIGNAL_STRENGTH_POSITION_MULTIPLIER`: 移除8分,只保留9-10分
|
||
- `AUTO_TRADE_ALLOW_4H_NEUTRAL`: 已为False(禁止neutral趋势开仓)
|
||
|
||
**修复位置**:`trading_system/config.py`
|
||
|
||
### ✅ 修复3:优化市场状态判断(已完成)
|
||
|
||
提高 `detect_market_regime` 的判断阈值:
|
||
- 均线差异阈值:2% → 3.5%
|
||
- 波动率阈值:1% → 1.5%
|
||
- 确保只在真正的趋势市判断为trending
|
||
|
||
**修复位置**:`trading_system/indicators.py` 第297行
|
||
|
||
### ✅ 修复4:增加交易对冷却时间(已完成)
|
||
|
||
- `ENTRY_SYMBOL_COOLDOWN_SEC`: 1800秒(30分钟)→ 3600秒(60分钟)
|
||
- 避免同一交易对频繁开仓
|
||
|
||
**修复位置**:`trading_system/config.py` 第260行
|
||
|
||
## 📋 修复总结
|
||
|
||
### 已完成的修复:
|
||
1. ✅ 止损执行验证:确保止损价对应的保证金百分比不超过配置值
|
||
2. ✅ 提高入场门槛:MIN_SIGNAL_STRENGTH从7提高到9
|
||
3. ✅ 优化市场状态判断:提高trending判断阈值
|
||
4. ✅ 增加交易对冷却时间:从30分钟增加到60分钟
|
||
|
||
### 预期效果:
|
||
- 止损执行更严格,实际亏损不会超过配置的12%
|
||
- 入场信号质量更高,减少垃圾交易
|
||
- 市场状态判断更准确,减少在震荡市开仓
|
||
- 同一交易对不会频繁开仓,减少重复止损
|
||
|
||
### 建议监控指标:
|
||
- 胜率是否提升(目标:>30%)
|
||
- 平均盈亏是否改善(目标:>0)
|
||
- 止损执行是否准确(实际亏损应在12%以内)
|
||
- 交易频率是否降低(避免过度交易)
|