Broker
Hummingbot 的brokers
模块允许在分布式环境中远程控制和监控多机器人环境,这样机器人可以"运行"在不同的机器和基础设施上(例如,一个机器人在本地,另一个机器人在 AWS 上)。
为了实现这种方法,有一个 MQTT 层供机器人远程连接到消息代理,作为单一参考点,使用异步双向通信通道(推送/拉取)。在这种架构中,机器人可以被视为整体环境的客户端。机器人扩展是无缝的,不需要任何进一步的设置,任何人都可以将任意数量的机器人连接到消息代理(例如 RabbitMQ、EMQX 等),而无需其他依赖。
有关更多信息,请参阅以下仓库:
- Brokers:使用 Docker Compose 的各种部署示例
- Remote client:用 Python 实现 Hummingbot 远程客户端的包。
观看 2023 年 2 月的社区通话,其中包含此功能的演示:
感谢klpanagi和TheHolyRoger的工作!🙏
Phase I¶
发布于v1.12.0
- 执行远程命令的界面:
Start
、Stop
、Import
、Config strategy
、Balance
、Change balance limits
- 所有这些命令都可以通过一个统一的 Web 应用程序调用,该应用程序还从机器人接收以下信息 -
Heartbeat - Status
、PNL - History
- 客户端中 broker 的配置应该在
conf_client.yml
文件中
Phase II¶
发布于v1.14.0
在此阶段,事件和数据层将集成到 Hummingbot 代码库中,以支持通过消息代理(MQTT)接收和处理远程事件,例如 TradingView 信号的情况。
将开发并集成一个 MQTTEventListener 到 hummingbot 代码库中,该监听器将提供配置以设置要监听的事件 URI。在接收到事件时,MQTTEventListener 将执行由用户/开发人员提供的处理回调,以便用户根据输入事件操作/开发其策略。
- 通过
EEventQueueFactory
、EEventListenerFactory
、ETopicQueueFactory
和ETopicListenerFactory
类定义订阅外部主题和监听消息的接口。 - 规范定义了消费外部事件的基本 URI 格式,URI 斜杠转换为点以支持多代理和多协议
- 这扩展了全局配置并添加了
mqtt_external_events
参数,用于全局启用/禁用机器人实例的外部事件功能。
Future phases¶
请参阅此 Notion 文档了解项目概述。这是一个由提案HIP-20资助的进行中项目。