跳转到内容

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 和源代码安装的完整安装说明
  • 快速入门指南 - 学习如何:
    • 添加交易所凭证
    • 查看投资组合余额
    • 下达您的第一个市价订单

这些指南包括 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 通信的接口层。

安装

pip install 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
)