auto_trade_sys/docs/并发数优化说明.md
薇薇安 c3a14f0f1a a
2026-01-25 16:53:40 +08:00

2.7 KiB
Raw Blame History

并发数优化说明

并发数的含义

并发数Semaphore(3) 是指:单个账户扫描时,同时分析多少个交易对

举例说明

假设扫描250个交易对初步筛选后需要详细分析50个交易对

并发数3

  • 同时最多分析3个交易对获取K线、计算技术指标
  • 其他47个交易对排队等待
  • 分析完3个后继续分析下3个以此类推

并发数5

  • 同时最多分析5个交易对
  • 其他45个交易对排队等待
  • 分析完5个后继续分析下5个以此类推

不是指用户进程数

  • 用户进程数每个账户有1个进程这是固定的
  • 并发数:单个账户扫描时,同时分析多少个交易对(这是可以调整的)

为什么要降低并发数

多用户场景

如果4个账户同时扫描

并发数3

  • 账户1同时分析3个交易对
  • 账户2同时分析3个交易对
  • 账户3同时分析3个交易对
  • 账户4同时分析3个交易对
  • 总共最多12个并发请求

并发数5

  • 账户1同时分析5个交易对
  • 账户2同时分析5个交易对
  • 账户3同时分析5个交易对
  • 账户4同时分析5个交易对
  • 总共最多20个并发请求

结论:降低并发数可以减少系统总压力


单用户场景

如果只有一个账户:

并发数3

  • 扫描耗时约20-30秒较慢

并发数5

  • 扫描耗时约15-25秒较快

结论如果只有一个账户保持并发数5可以提升扫描速度


建议

当前情况

如果你现在只有一个账户,建议:

  1. 保持并发数5:提升单个账户的扫描速度
  2. 如果后续增加用户再降低到3确保系统稳定

如何调整

文件trading_system/market_scanner.py

位置第107行

# 当前(多用户优化)
semaphore = asyncio.Semaphore(3)  # 最多3个并发请求

# 单用户建议
semaphore = asyncio.Semaphore(5)  # 最多5个并发请求

性能对比

单用户场景

并发数 扫描耗时 系统压力
3 20-30秒
5 15-25秒

多用户场景4个账户

并发数 总并发请求 系统压力
3 最多12个 中等
5 最多20个 较高

总结

  1. 并发数:单个账户扫描时,同时分析多少个交易对
  2. 不是用户进程数每个账户仍然只有1个进程
  3. 单用户建议保持并发数5提升扫描速度
  4. 多用户建议降低到3确保系统稳定