1

我一直致力于在 Grails 中实现基于 Interactive Brokers 的 API 的自动交易系统(这里的简要概述:Grails - 与 3rd 方 API 的异步通信)的时间比我愿意承认的要长。这是一种高频交易策略,所以并不是下单 100 股就被成交那么简单。涉及很多研发,所以我的架构和设计一直在并且继续随着时间的推移而变化和发展。

在过去一个月左右的时间里变得很清楚的是,API 的异步特性正在扼杀我。我有一个我在 Grails 中的预期职位的模型,但这并不能自动反映经纪公司的实际状态。有一个创建订单的过程,其中一些现在会被执行,一些稍后会执行,而有些则永远不会。可能存在部分成交、取消或拒绝订单,或任何数量的其他错误。并且异步更新已经变成了悲观锁的噩梦,丑陋的关系和职位、意图、订单、交易等之间的依赖关系。尽管如此,由于所有这些不雅、臭的代码,有时我的内部模型会不同步与经纪账户的实际状态。这是一个非常危险的情况。

所以,我意识到我需要某种异步框架来允许 Grails 和 IB API 保持完全相同的状态而不会失败。我对 Gpars、Akka、Promises 和 Actors 有点熟悉,但只是表面上;我对他们中的任何一个都没有动手经验。就在最近,我看到 Parse 的 Bolt 框架任务,想知道这是否合适。我真正需要的不是计算或集合的并行性或多线程。我要做的就是确保来自 IB 的异步回调始终正确地反映在 Grails 域类中。我希望正确的框架能让我删除我为解决这个问题而编写的大量丑陋的意大利面条代码。

我需要的是针对解决此问题的正确框架、模型或架构的建议。我欢迎任何建议,无论我是否在上面提到过。

4

0 回答 0