【问题标题】:Algo software architecture算法软件架构
【发布时间】:2018-07-03 10:05:37
【问题描述】:

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

  1. 数据层 - 流式传输和格式化数据
  2. 模型层 - 更新模型并将事件写入事件队列
  3. 智能层 - 获取事件、分类(买入、卖出、空值)、过滤、构建订单(仪器、买入/卖出、停止)、写入订单队列
  4. 订单层 - 获取事件、选择大小(或拒绝)、下订单、将订单写入数据库

我的问题是:

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

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

  1. 模型 M 创建 DataSource D 的实例
  2. M 创建 Intelligence I 的实例
  3. I 创建一个 Order O 的实例

上面的要点是一切都实例化了其他一切,所以没有什么是独立运行的(从而减少了冗余)。

但我也不觉得一个实例化所有内容并管理交互的类是好的做法。

谁能给点建议?

【问题讨论】:

    标签: algorithm architecture algorithmic-trading


    【解决方案1】:

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

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

    【讨论】:

    • 看来这是我能得到的最佳答案。然而,它确实引导我走上了我需要的道路,向我展示了服务定位器设计模式以及我可以使用的库。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 2013-06-22
    • 2023-03-29
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多