跳转至内容

Broker

Hummingbot 的brokers模块允许在分布式环境中远程控制和监控多机器人环境,这样机器人可以"运行"在不同的机器和基础设施上(例如,一个机器人在本地,另一个机器人在 AWS 上)。

为了实现这种方法,有一个 MQTT 层供机器人远程连接到消息代理,作为单一参考点,使用异步双向通信通道(推送/拉取)。在这种架构中,机器人可以被视为整体环境的客户端。机器人扩展是无缝的,不需要任何进一步的设置,任何人都可以将任意数量的机器人连接到消息代理(例如 RabbitMQ、EMQX 等),而无需其他依赖。

有关更多信息,请参阅以下仓库:

  • Brokers:使用 Docker Compose 的各种部署示例
  • Remote client:用 Python 实现 Hummingbot 远程客户端的包。

观看 2023 年 2 月的社区通话,其中包含此功能的演示:

感谢klpanagiTheHolyRoger的工作!🙏

Phase I

发布于v1.12.0

  • 执行远程命令的界面:StartStopImportConfig strategyBalanceChange balance limits
  • 所有这些命令都可以通过一个统一的 Web 应用程序调用,该应用程序还从机器人接收以下信息 - Heartbeat - StatusPNL - History
  • 客户端中 broker 的配置应该在conf_client.yml文件中

Phase II

发布于v1.14.0

在此阶段,事件和数据层将集成到 Hummingbot 代码库中,以支持通过消息代理(MQTT)接收和处理远程事件,例如 TradingView 信号的情况。

将开发并集成一个 MQTTEventListener 到 hummingbot 代码库中,该监听器将提供配置以设置要监听的事件 URI。在接收到事件时,MQTTEventListener 将执行由用户/开发人员提供的处理回调,以便用户根据输入事件操作/开发其策略。

  • 通过EEventQueueFactoryEEventListenerFactoryETopicQueueFactoryETopicListenerFactory类定义订阅外部主题和监听消息的接口。
  • 规范定义了消费外部事件的基本 URI 格式,URI 斜杠转换为点以支持多代理和多协议
  • 这扩展了全局配置并添加了mqtt_external_events参数,用于全局启用/禁用机器人实例的外部事件功能。

Future phases

请参阅此 Notion 文档了解项目概述。这是一个由提案HIP-20资助的进行中项目。