4.2 KiB
4.2 KiB
扫描效率优化完成总结
✅ 已完成的优化
1. 增加 MAX_SCAN_SYMBOLS
优化前:MAX_SCAN_SYMBOLS = 150
优化后:MAX_SCAN_SYMBOLS = 250
效果:
- 覆盖率:从 27.6% 提升到 46.0%(增加 18.4%)
- 减少错过好机会的概率
已更新的文件:
trading_system/config.py- 默认配置backend/config_manager.py- 配置管理器frontend/src/components/GlobalConfig.jsx- 前端全局配置frontend/src/components/ConfigPanel.jsx- 前端用户配置
2. 优化缓存机制
2.1 增加24小时行情数据缓存TTL
优化位置:trading_system/binance_client.py
优化前:TTL: 30秒
优化后:TTL: 60秒
理由:
- 24小时行情数据变化较慢,可以缓存更长时间
- 多个账户可以共用同一个缓存,减少API请求
- 提升扫描效率
2.2 添加技术指标计算结果缓存
优化位置:trading_system/market_scanner.py
功能:
- 缓存技术指标计算结果(RSI、MACD、布林带、ATR、EMA等)
- 基于K线数据的最后更新时间判断缓存是否有效
- 如果K线数据没有更新,直接使用缓存的技术指标
缓存键:indicators:{symbol}:{primary_interval}:{confirm_interval}
缓存TTL:30秒(与K线缓存一致)
效果:
- 减少重复计算技术指标的开销
- 多个账户可以共用同一个缓存
- 提升扫描效率(特别是扫描250个交易对时)
📊 性能提升
优化前
扫描150个交易对:
- 获取24小时行情:1次API请求(缓存30秒)
- 详细分析28个:28次K线API请求(有缓存)
- 计算技术指标:28次计算(无缓存,每次都计算)
- 总耗时:约10-30秒
优化后
扫描250个交易对:
- 获取24小时行情:1次API请求(缓存60秒,多个账户共用)
- 详细分析50-60个:50-60次K线API请求(有缓存,多个账户共用)
- 计算技术指标:50-60次计算(有缓存,多个账户共用)
- 总耗时:约15-40秒(虽然扫描数量增加,但缓存优化减少了实际计算时间)
性能提升:
- 24小时行情缓存TTL增加,减少API请求
- 技术指标计算结果缓存,减少重复计算
- 多个账户可以共用缓存,进一步提升效率
🎯 缓存策略
1. 24小时行情数据缓存
- 缓存键:
ticker_24h:all - TTL:60秒
- 共享:所有账户共用
- 更新频率:每60秒更新一次
2. K线数据缓存
- 缓存键:
klines:{symbol}:{interval}:{limit} - TTL:根据interval动态设置(1h=60秒,4h=300秒)
- 共享:所有账户共用
- 更新频率:根据interval动态更新
3. 技术指标计算结果缓存
- 缓存键:
indicators:{symbol}:{primary_interval}:{confirm_interval} - TTL:30秒
- 共享:所有账户共用
- 更新频率:当K线数据更新时自动失效
📈 预期效果
1. 扫描覆盖率提升
- 优化前:150/544 = 27.6%
- 优化后:250/544 = 46.0%(增加18.4%)
- 效果:减少错过好机会的概率
2. 扫描效率提升
- 优化前:每次扫描都需要重新计算技术指标
- 优化后:技术指标计算结果缓存,减少重复计算
- 效果:虽然扫描数量增加,但实际耗时增加不多
3. 多账户效率提升
- 优化前:每个账户独立扫描,重复计算
- 优化后:多个账户共用缓存,减少重复计算
- 效果:多个账户同时扫描时,效率显著提升
🚀 下一步操作
-
重启交易进程:
supervisorctl restart auto_sys_acc1 auto_sys_acc2 auto_sys_acc3 auto_sys_acc4 -
验证优化:
# 查看日志,确认扫描数量增加到250 tail -f /www/wwwroot/autosys_new/logs/trading_*.log | grep -E "限制扫描数量|排除主流币|扫描完成" # 查看缓存使用情况 tail -f /www/wwwroot/autosys_new/logs/trading_*.log | grep -E "使用缓存|已缓存|从Redis缓存" -
观察效果:
- 观察扫描时间是否在可接受范围内(15-40秒)
- 观察是否找到了更多优质机会
- 观察缓存命中率
✅ 完成时间
2026-01-25