8.0 KiB
8.0 KiB
交易策略优化计划
📋 优化目标
根据专业建议,系统化提升:
- 入场信号质量 (Win Rate Up)
- 利润捕获能力 (Profit Up)
- 风险控制 (Survival First)
- 系统可靠性 (Reliability Up)
- 小众币专项优化
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- 扫描过滤
📊 实施优先级
✅ 高优先级(已完成)
- ✅ 大盘共振(Beta Filter) - 当BTC/ETH下跌超过-3%时,屏蔽所有多单
- ✅ 成交量验证(1000万美金) - 24H Volume低于1000万美金直接剔除
- ✅ 固定风险百分比仓位计算 - 根据止损距离反算仓位,每笔风险恒定2%
- ✅ 信号强度分级 - 8分50%仓位,9-10分100%仓位
- ✅ 阶梯杠杆 - 小众币(ATR>=5%)限制最高杠杆5倍
预期效果:
- ✅ 减少大盘暴跌时的损失
- ✅ 避免流动性差的币种,减少滑点损失(2-3%)
- ✅ 每笔单子风险恒定(2%),避免30%的大额亏损
- ✅ 高质量信号获得更大收益,低质量信号降低风险
- ✅ 小众币风险降低,减少强平风险
⏳ 中优先级(待实施)
- ⏳ 波动率阈值 - 避开ATR异常激增的时刻
- ⏳ 心跳检测与兜底巡检 - WebSocket断线重连和兜底巡检
- ⏳ 滑点保护 - 使用MARK_PRICE触发,LIMIT单执行
中优先级(本周实施)
- 波动率阈值
- 信号强度分级
- 阶梯杠杆(小众币)
- 滑点保护
低优先级(后续优化)
- 追踪止损(Trailing Stop)
- ADX趋势强度判断
- 资金费率避险
🔧 配置项汇总
# 动态过滤
'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小时