算法软件架构

时间:2018-07-02 20:17:41

标签: algorithm architecture algorithmic-trading

我拥有交易机器人的组件。这遵循以下架构:

  1. 数据层-流式传输和格式化数据
  2. 模型层-更新模型并将事件写入事件队列
  3. 情报层-获取事件,分类(买,卖,空),过滤,构造订单(工具,买/卖,止损),写入订单队列
  4. 订单层-获取事件,选择大小(或拒绝),下订单,将订单写入数据库

我的问题是:

  • 协调每一层中涉及的所有组件的最佳设计模式是什么?

对于一个(简化的)示例,我认为以下做法不是好习惯:

  1. 模型 M 创建DataSource D
  2. 的实例
  3. M 创建Intelligence I
  4. 的实例
  5. 创建Order O
  6. 的实例

以上的要点是一切都会实例化其他所有内容,因此没有任何东西独立运行(因此减少了冗余)。

但是我也不认为一个实例化所有事物并管理交互的课程是一种好习惯。

有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

这就是人们使用IoC的原因,它可以解决此问题。 https://en.wikipedia.org/wiki/Inversion_of_control

查看您的语言/框架堆栈,并搜索IoC库,它可能会解决您的大多数问题。