经纪人
Hummingbot 的 brokers 模块允许在分布式环境中远程控制和监控多机器人环境,使机器人可以“驻留”在不同的机器和基础设施上(例如,一个机器人本地运行,另一个机器人部署在 AWS 上)。
为实现这一架构,机器人通过 MQTT 层连接到消息代理(message broker),作为统一的参考点,利用异步双向通信通道(推送/拉取)。在此架构中,机器人可被视为整个环境的客户端。机器人扩展无缝且无需额外配置,任何人都可将任意数量的机器人连接到消息代理(例如 RabbitMQ、EMQX 等),无需其他依赖。
有关更多信息,请参阅以下仓库:
观看 2023 年 2 月的 社区会议,其中包含此功能的演示:
感谢 klpanagi 和 TheHolyRoger 的贡献!🙏
第一阶段¶
发布于 v1.12.0
- 用于执行远程命令的接口: Start、Stop、Import、Config strategy、Balance、Change balance limits
- 所有这些命令均可通过一个统一的 Web 应用程序调用,该应用程序同时接收来自机器人的以下信息: Heartbeat - Status、PNL - History
- 客户端中的经纪人配置应位于 conf_client.yml文件中
第二阶段¶
发布于 v1.14.0
在本阶段,Hummingbot 代码库将集成事件与数据层,以支持通过消息代理(MQTT)接收和处理远程事件,例如 TradingView 信号。
将开发并集成一个 MQTTEventListener 到 Hummingbot 代码库中,该组件提供配置选项以设置要监听的事件 URI。当接收到事件时,MQTTEventListener 将执行用户/开发者提供的处理回调,使用户能够基于输入事件操作或开发其策略。
- 通过 EEventQueueFactory、EEventListenerFactory、ETopicQueueFactory和ETopicListenerFactory类定义订阅外部主题和监听消息的接口。
- 规范定义了用于消费外部事件的基础 URI 格式,URI 中的斜杠将被转换为点号,以支持多代理和多协议。
- 此功能扩展了全局配置,新增了 mqtt_external_events参数,用于全局启用或禁用机器人实例的外部事件功能。
未来阶段¶
有关该项目的概览,请参阅 此 Notion 文档。该项目由提案 HIP-20 资助,正在持续进行中。
