auto_trade_sys/docs/交易对筛选优化完成总结_2026-01-27.md
薇薇安 9fe028d704 a
2026-01-27 10:36:56 +08:00

4.5 KiB
Raw Blame History

交易对筛选优化完成总结2026-01-27

🎯 优化目标

按真实的信号强度signal_strength排序优先选择高质量信号8-10分而不是简单的signalScore5-7分


已完成的优化

1. 在扫描阶段计算signal_strength

修改位置trading_system/market_scanner.py:380-449

优化内容

  • _get_symbol_change 方法中,添加真实的 signal_strength 计算
  • 使用与 strategy.py 相同的逻辑,确保排序依据与交易判断一致
  • 包括MACD金叉/死叉、EMA均线系统、价格与EMA20关系、4H趋势确认

计算逻辑

# 策略权重配置与strategy.py保持一致
TREND_SIGNAL_WEIGHTS = {
    'macd_cross': 5,          # MACD金叉/死叉
    'ema_cross': 4,           # EMA20上穿/下穿EMA50
    'price_above_ema20': 3,   # 价格在EMA20之上/下
    '4h_trend_confirmation': 2,  # 4H趋势确认
}

2. 按signal_strength排序

修改位置trading_system/market_scanner.py:152-161

优化前

sorted_results = sorted(
    filtered_results,
    key=lambda x: (
        x.get('signalScore', 0) * 10,  # 信号得分权重更高
        abs(x['changePercent'])  # 其次考虑涨跌幅
    ),
    reverse=True
)

优化后

sorted_results = sorted(
    filtered_results,
    key=lambda x: (
        x.get('signal_strength', 0) * 100,  # 信号强度权重最高乘以100确保优先级
        x.get('signalScore', 0) * 10,  # 其次考虑信号得分(兼容性)
        abs(x['changePercent'])  # 最后考虑涨跌幅
    ),
    reverse=True
)

3. 更新日志显示

修改位置trading_system/market_scanner.py:197-208

优化内容

  • 日志中显示真实的 signal_strength,而不是 signalScore
  • 方便用户查看信号强度分布

📊 预期效果

优化前

  • signalScore 排序(简单的技术指标得分)
  • 信号强度5, 5, 5, 5, 6, 6, 7, 7可能的情况
  • 问题:信号强度普遍偏低,与交易判断不一致

优化后

  • signal_strength 排序(真实的信号强度,包括多周期共振)
  • 信号强度7, 7, 8, 8, 9, 9, 10, 10理想情况
  • 效果:优先选择高质量信号,提升胜率

🔍 信号强度5-7是否合理

当前情况

  • MIN_SIGNAL_STRENGTH = 5所以信号强度5-7是正常的
  • 但问题是应该优先选择信号强度更高的交易对8-10分

优化后

  • signal_strength 排序优先选择8-10分的交易对
  • 如果市场整体信号强度偏低仍然会出现5-7的情况但这是正常的
  • 说明当前市场条件不够理想,系统会优先选择相对较好的信号

⚠️ 注意事项

  1. 性能考虑

    • 计算 signal_strength 需要额外的计算量
    • 但考虑到已经获取了所有技术指标,计算量增加有限
    • 可以通过缓存优化(技术指标已经缓存)
  2. 信号强度分布

    • 如果市场整体信号强度偏低可能仍然会出现5-7的情况
    • 这是正常的,说明当前市场条件不够理想
    • 系统会优先选择相对较好的信号即使只有5-7分
  3. 排序依据

    • 现在按 signal_strength 排序,确保排序依据与交易判断一致
    • 优先选择高质量信号,提升胜率

总结

优化内容

  • 在扫描阶段计算真实的 signal_strength
  • signal_strength 排序,而不是按 signalScore 排序
  • 更新日志显示,显示真实的信号强度

预期效果

  • 优先选择信号强度高的交易对8-10分
  • 提升胜率(信号强度高的交易对胜率更高)
  • 排序依据与交易判断一致

信号强度5-7是否合理

  • 如果市场整体信号强度偏低5-7是正常的
  • 优化后系统会优先选择相对较好的信号即使只有5-7分
  • 如果市场条件好应该能看到8-10分的信号

📝 后续优化建议

  1. 监控信号强度分布

    • 定期检查信号强度分布,确认优化效果
    • 如果长期都是5-7分可能需要调整信号强度计算逻辑
  2. 动态调整TOP_N_SYMBOLS

    • 如果高质量信号8-10分较少可以降低 TOP_N_SYMBOLS
    • 如果高质量信号较多,可以增加 TOP_N_SYMBOLS
  3. 信号强度阈值

    • 如果长期都是5-7分可以考虑提高 MIN_SIGNAL_STRENGTH 到6或7
    • 但需要确保有足够的交易对