Hummingbot 第16章:Condor 多机器人部署

Condor 是 Hummingbot 的云部署和管理平台,支持大规模多机器人部署、策略分发和集中监控。本章详细介绍 Condor 的配置和使用方法。

Condor 平台概述

什么是 Condor

Condor 是 Hummingbot 团队开发的云编排平台,专门用于管理多个 Hummingbot 实例。它提供了 Web 界面和 API,支持:

  • 多机器人管理:同时管理数百个交易机器人
  • 策略分发:批量部署和更新策略配置
  • 云部署:一键部署到 AWS、GCP、Azure 等云平台
  • 监控告警:集中监控所有机器人的运行状态

架构示意图

┌─────────────────────────────────────────────┐
│               Condor 控制面板                  │
│        (Web UI / API / CLI)                  │
├─────────────────────────────────────────────┤
│    ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│    │ Bot 节点 1│  │ Bot 节点 2│  │ Bot 节点 N│  │
│    │ (实例 A)  │  │ (实例 B)  │  │ (实例 N)  │  │
│    └──────────┘  └──────────┘  └──────────┘  │
├─────────────────────────────────────────────┤
│    ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│    │ 交易所 A  │  │ 交易所 B  │  │ 交易所 C  │  │
│    └──────────┘  └──────────┘  └──────────┘  │
└─────────────────────────────────────────────┘

云部署配置

前提条件

# 安装 Condor CLI
pip install hummingbot-condor

# 验证安装
condor --version

# 登录 Condor 账户
condor login --username your-email --password your-password

云提供商配置

Condor 支持多种云平台,以下是 AWS 的配置示例:

# condor-config.yml
provider: aws
region: us-east-1
instance_type: t3.medium
spot_instance: true
max_bid_price: 0.05

# 存储配置
storage:
  type: ebs
  size_gb: 30

# 网络配置
network:
  vpc_id: vpc-xxxxx
  subnet_id: subnet-xxxxx
  security_group: sg-xxxxx

GCP 配置示例:

# condor-gcp.yml
provider: gcp
project: my-trading-project
zone: us-central1-a
machine_type: e2-standard-2

一键部署

# 部署到 AWS
condor deploy --config condor-config.yml --name my-trading-cluster

# 指定机器人数量
condor deploy --config condor-config.yml --count 5

# 部署新版本
condor deploy --update --config condor-config.yml

多机器人管理

创建机器人实例

# 创建新的机器人
condor bot create \
  --name bot-eth-maker \
  --strategy pure_market_making \
  --exchange binance \
  --pair ETH-USDT

# 批量创建
condor bot create \
  --name-prefix bot-btc \
  --strategy pure_market_making \
  --exchange binance \
  --pairs BTC-USDT,ETH-USDT,SOL-USDT \
  --count 3

机器人生命周期管理

操作命令说明
启动condor bot start <name>启动指定机器人
停止condor bot stop <name>停止指定机器人
重启condor bot restart <name>重启指定机器人
删除condor bot delete <name>删除机器人实例
列表condor bot list列出所有机器人
# 批量操作
condor bot start --all
condor bot stop --group arbitrage-group
condor bot restart --status failed  # 重启所有失败实例

策略分发

上传策略配置

# 上传本地配置文件
condor config upload ./configs/eth-maker.yml --name eth-maker-config

# 在线编辑配置
condor config edit eth-maker-config

分发策略到机器人

# 为单个机器人设置策略
condor bot assign bot-eth-maker --config eth-maker-config

# 批量分发
condor bot assign \
  --group market-making-group \
  --config eth-maker-config

# 使用标签选择
condor bot assign \
  --tag exchange:binance \
  --config binance-pmm-config

配置版本管理

# 查看配置版本历史
condor config history eth-maker-config

# 回滚到指定版本
condor config rollback eth-maker-config --version 3

# 对比配置差异
condor config diff eth-maker-config --version 3 --version 5

监控告警

配置告警规则

# alerts.yml
alerts:
  - name: low_balance
    condition: "balance.USDT.total < 100"
    severity: critical
    actions:
      - type: email
        to: [email protected]
      - type: telegram
        chat_id: "-100123456789"

  - name: bot_stopped
    condition: "bot.status == 'stopped'"
    severity: warning
    actions:
      - type: slack
        webhook_url: "https://hooks.slack.com/services/xxx"

  - name: high_loss
    condition: "bot.pnl_24h < -5%"
    severity: critical
    actions:
      - type: email
      - type: discord
        webhook_url: "https://discord.com/api/webhooks/xxx"

查看监控数据

# 查看集群概览
condor dashboard

# 查看单个机器人详情
condor bot status bot-eth-maker --detailed

# 查看资源使用情况
condor metrics --resource cpu --period 24h

监控指标

指标类别具体指标说明
性能CPU / 内存 / 网络机器资源使用率
交易PnL / 成交量 / 订单数交易表现
市场价差 / 深度 / 波动率市场状况
健康正常运行时间 / 错误率系统健康度

性能调优

实例规格选择

策略类型推荐实例内存vCPU
简单做市t3.small / e2-small2 GB1
高级做市 + 多交易对t3.medium / e2-medium4 GB2
套利策略t3.large / e2-standard-28 GB2
FreqAI + 机器学习t3.xlarge / e2-standard-416 GB4

网络优化

# condor-network.yml
network:
  # 选择离交易所服务器最近的区域
  region: ap-southeast-1  # 新加坡
  # 启用专用网络
  dedicated_vpc: true
  # 带宽限制
  bandwidth_mbps: 100

成本控制

# 查看成本预估
condor cost estimate --config condor-config.yml --count 10

# 使用竞价实例节省成本
condor deploy --spot --max-price 0.03

# 设置预算上限
condor budget set --monthly-limit 500

常见操作示例

完整部署流程

# 1. 创建 Condor 配置文件
cat > condor-config.yml << 'EOF'
provider: aws
region: us-east-1
instance_type: t3.medium
count: 5
strategy: pure_market_making
exchange: binance
EOF

# 2. 部署集群
condor deploy --config condor-config.yml --name my-cluster

# 3. 查看部署状态
condor cluster status my-cluster

# 4. 分发策略配置
condor config upload ./my-pmm-config.yml --name pmm-v1
condor bot assign --all --config pmm-v1

# 5. 启动所有机器人
condor bot start --all

# 6. 开启监控告警
condor alert create --rule-file alerts.yml

滚动更新

# 不中断交易的情况下更新策略
condor deploy --rolling-update \
  --batch-size 2 \
  --wait-between-batches 60s \
  --config new-config.yml

故障排除

问题可能原因解决方案
部署失败云配额不足检查 AWS/GCP 配额限制
机器人频繁重启内存不足升级实例规格
网络延迟高区域选择不当选择交易所最近的区域
API 限频请求过多调整订单频率参数