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-small | 2 GB | 1 |
| 高级做市 + 多交易对 | t3.medium / e2-medium | 4 GB | 2 |
| 套利策略 | t3.large / e2-standard-2 | 8 GB | 2 |
| FreqAI + 机器学习 | t3.xlarge / e2-standard-4 | 16 GB | 4 |
网络优化
# 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 限频 | 请求过多 | 调整订单频率参数 |