典型开源机器人的内部架构:以简单策略为例
• 1 分钟阅读
三个月前,我对比了MOEX的开源框架。搞清楚了选什么。但问题仍然存在:这一切内部是如何运作的?
今天不是关于选择平台,而是关于引擎盖下发生了什么。
我分析了四个流行开源机器人的架构:Freqtrade、NautilusTrader、Hummingbot和微服务系统MBATS。
结论:尽管语言和目标不同,模式是重复的。
分层架构:基础
大多数交易机器人遵循5层架构:
第5层:通信层 <- Telegram、Web UI、API
第4层:策略层 <- 交易逻辑
第3层:执行和风控 <- 订单、风险管理
第2层:数据处理 <- 指标、标准化
第1层:数据采集 <- 交易所连接
设计模式
1. Event Sourcing
将每个状态变化保存为事件。对审计、调试和合规至关重要。
2. CQRS
分离读写。Event Store处理写入;单独的数据库处理查询。
3. 微服务架构
MBATS将系统拆分为通过Kafka/RabbitMQ通信的独立服务。
4. Actor Model
NautilusTrader和Hummingbot使用它。每个Actor有独立状态,通过消息通信。无共享状态意味着无竞态条件。
设计清单
- 从单体开始 — 不要过早跳到微服务
- 从第一天起分离层次
- 为测试而设计 — 依赖注入
- 从第一天起添加可观测性 — 日志、指标
- 规划持久化 — 保存所有订单、持仓、设置
- 何时转向微服务: >100个工具、HFT、团队>3人
架构决定了你能走多远。意大利面代码能用一个月。正确的架构——能用好几年。
有用链接:
相关文章
讨论
加入我们的讨论 Telegram 群组!