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

248 lines
8.0 KiB
Markdown
Raw Permalink 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.

# 交易策略优化计划
## 📋 优化目标
根据专业建议,系统化提升:
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小时
```