如您所知,交易策略采取基于实时Feed的操作,例如当出价或最后交易价格发生变化时。数据馈送提供程序在与主线程的单独线程中异步地将引号流式传输到我们的桌面应用程序。当您向数据馈送提供程序发出请求时,会生成此数据馈送线程,直到您明确发送停止流式传输的请求为止。
目前,数据馈送线程执行交易策略,因为它们中的大多数旨在根据刻度数据输入或更新订单。你觉得这种方法有什么问题吗?这种设计在交易应用中很常见吗?
我正在使用Java。
答案 0 :(得分:3)
您绝对不希望在数据馈送线程上执行交易策略,尤其是在执行需要一段时间的情况下。该执行应该在不同的线程上发生。我不熟悉Java,但我认为你可以在那里使用一个线程池。在C#中,通过多个线程分散工作的一种非常强大的方法是使用Tasks。
您可能想要考虑的另一件事是,当您仍在处理上一个滴答时,如果仪器有新的滴答,该怎么办。在许多情况下,仅处理最新的一个是有意义的。我在C#中用一个示例实现写了一篇关于我称之为most recent update pattern的帖子。也许你发现它很有用。
答案 1 :(得分:1)
目前,数据馈送线程执行交易策略,因为它们中的大多数旨在根据刻度数据输入或更新订单。
不完全。数据馈送线程触发交易策略的执行。您不希望任何其他处理减慢数据馈送线程。