Hummingbot API¶
存储库更新
backend-api
已被 重命名为 hummingbot-api
,标志着代码库的重大重构,改进了架构、模块化和开发人员体验。
概述¶
Hummingbot API 是一个全面的 RESTful API 框架,专为管理多个交易所的交易操作而设计。它允许个人交易者和团队部署自定义的私有服务器进行交易执行、投资组合管理、数据收集、机器人部署和其他用例。
GitHub 存储库: github.com/hummingbot/hummingbot-api
主要功能¶
- ⚙️ 用于管理机器人、执行交易和监控多交易所投资组合的 标准化和生产就绪 API
- 🔄 扩展功能,包括直接交易、投资组合再平衡和账户管理——全部通过 API
- 📊 实时监控 跨多个交易所的投资组合表现
- 🎯 市场数据收集 用于实时和历史价格数据
- 🔧 全面的机器人编排 以管理多个交易实例
架构¶
graph TB
subgraph "Clients"
direction LR
CUSTOM[Custom Apps]
DASH[Hummingbot<br/>Dashboard]
AI[AI Agents]
end
subgraph "Hummingbot API"
direction LR
API["FastAPI<br/>Server<br/>"]
PG[(PostgreSQL<br/>Database)]
MQTT[EMQX<br/>Message Broker]
end
subgraph "Bots"
BOTS[Hummingbot<br/>Instances]
end
subgraph "Exchanges"
EX[Binance, OKX,<br/>Hyperliquid, etc.]
end
%% Client connections using API Client
DASH -->|Hummingbot API Client| API
%% Bot connections
BOTS <-->|Commands & Updates| MQTT
%% Exchange connections
BOTS <-->|Trade & Data| EX
API <-->|Trade & Data| EX
%% Apply theme colors
classDef clientStyle stroke:#5FFFD7,stroke-width:3px
classDef apiStyle stroke:#00B1BB,stroke-width:3px
classDef botsStyle stroke:#E549FF,stroke-width:3px
class DASH clientStyle
class API,PG,MQTT apiStyle
class BOTS botsStyle
核心组件¶
- 服务器基础设施:
- FastAPI 服务器提供 RESTful API,具有 HTTP 基本认证
- PostgreSQL 数据库用于存储交易数据、账户信息和历史表现
- EMQX 消息代理用于与机器人实例进行实时通信
- 交易所连接器: 内置对主要 CEX 和 DEX 的连接器 - 交易和数据获取可以直接通过 Hummingbot API 或通过它部署的机器人进行访问
- 机器人实例: 连接到不同交易所的独立 Hummingbot 容器
- Docker 管理: 编排多个 Hummingbot 容器实例
使用案例¶
Hummingbot API 支持各种交易应用:
- 自定义 OEMS: 构建您自己的跨多个交易所的交易订单执行管理系统
- 交易仪表板: 构建用于控制机器人的自定义聊天、网页和移动界面
- AI 驱动的交易: 与 LLM 集成以实现智能交易工作流程
- 风险管理工具: 构建用于监控和管理交易操作的系统
- 市场数据源: 为不同应用创建实时价格和历史蜡烛图数据源
开始使用¶
这些指南包括 Docker 设置和 Python API 客户端示例,助您快速开始交易。
API 路由器¶
Hummingbot API 提供以下关键路由器:
🐳 Docker 管理¶
管理运行 Hummingbot 的 Docker 容器和实例
GET /docker/running
- 检查 Docker 守护进程是否正在运行GET /docker/available-images
- 列出可用的 Docker 镜像GET /docker/active-containers
- 获取所有运行的容器POST /docker/pull-image
- 拉取新的 Docker 镜像POST /docker/start-container/{name}
- 启动一个容器POST /docker/stop-container/{name}
- 停止一个容器POST /docker/remove-container/{name}
- 删除容器并归档数据
💼 账户管理¶
处理交易所账户凭证和配置
GET /accounts
- 列出所有交易账户POST /accounts
- 创建新的交易账户PUT /accounts/{id}
- 更新账户凭证DELETE /accounts/{id}
- 删除交易账户GET /accounts/{id}/balances
- 获取账户余额
🔌 连接器发现¶
发现和管理可用的交易所连接器
GET /connectors
- 列出所有可用的连接器GET /connectors/{name}
- 获取连接器详情GET /connectors/{name}/trading-rules
- 获取交易规则和限制GET /connectors/{name}/markets
- 列出支持的交易对
📊 投资组合管理¶
跨交易所监控和分析投资组合表现
GET /portfolio/balances
- 获取聚合的投资组合余额GET /portfolio/performance
- 获取投资组合表现指标GET /portfolio/distribution
- 获取代币分布分析GET /portfolio/history
- 获取历史投资组合数据
💱 交易操作¶
执行交易、管理订单和监控仓位
POST /trading/orders
- 下达新订单GET /trading/orders
- 列出活跃订单DELETE /trading/orders/{id}
- 取消订单GET /trading/positions
- 获取开放的仓位GET /trading/history
- 获取交易历史POST /trading/close-position
- 平仓
📈 策略管理¶
配置和部署交易策略,带有实时更新
GET /controllers
- 列出可用的策略控制器POST /controllers/{name}/deploy
- 部署策略控制器PUT /controllers/{id}/config
- 更新策略参数GET /scripts
- 列出可用的交易脚本POST /scripts/run
- 执行交易脚本
📉 市场数据¶
访问实时和历史市场数据
GET /market-data/ticker/{pair}
- 获取当前行情数据GET /market-data/orderbook/{pair}
- 获取订单簿快照GET /market-data/candles/{pair}
- 获取历史蜡烛图GET /market-data/trades/{pair}
- 获取最近的交易WS /market-data/stream
- 实时市场数据流
🤖 机器人编排¶
部署、配置和管理多个机器人实例
GET /bot-orchestration/bots
- 列出所有机器人实例POST /bot-orchestration/deploy
- 部署新机器人PUT /bot-orchestration/bots/{id}/config
- 更新机器人配置POST /bot-orchestration/bots/{id}/start
- 启动机器人POST /bot-orchestration/bots/{id}/stop
- 停止机器人GET /bot-orchestration/bots/{id}/status
- 获取机器人状态
🧪 回测¶
使用历史数据运行策略回测
POST /backtesting/run
- 开始新的回测GET /backtesting/results/{id}
- 获取回测结果GET /backtesting/metrics/{id}
- 获取表现指标POST /backtesting/optimize
- 运行参数优化
认证¶
API 使用 HTTP 基本认证:
- 在设置期间配置用户名和密码
- 在所有请求的 Authorization 头中包含凭证
- 示例:
Authorization: Basic <base64-encoded-credentials>
API 客户端¶
提供了一个现代化、异步的 Python 客户端,用于与 Hummingbot API 进行交互。该客户端被 Hummingbot 仪表板 用作所有 API 通信的接口层。
- GitHub: hummingbot-api-client
- PyPI: pypi.org/project/hummingbot-api-client
安装¶
使用示例¶
from hummingbot_api_client import HummingbotAPIClient
# 初始化客户端
client = HummingbotAPIClient(
base_url="http://localhost:8000",
username="your-username",
password="your-password"
)
# 获取投资组合数据
portfolio = await client.get_portfolio()
# 执行交易
order = await client.create_order(
connector="binance",
trading_pair="BTC-USDT",
order_type="limit",
side="buy",
amount=0.001,
price=50000
)
相关资源¶
- Hummingbot 仪表板 - 基于 Hummingbot API 构建的网页界面
- API 客户端文档 - Python 客户端库
- Hummingbot 客户端 - 核心交易引擎