3

我对 FIX 只熟悉了几天,我将不胜感激下面的一些指导。

连接到交易所的交易系统能够接受用于交易和市场数据请求目的的 FIX 消息。我正在尝试使用 QuickFix/J 构建一个 FIX Web 平台,该平台将提供给众多客户。

提供了一个 ip 和一个端口来连接到交易系统的网关,并且我已经获得了它们的有效消息标签。

我已经使用 QuickFix/J 构建了一个本地启动器和接受器(独立应用程序不是 Web)来进行测试并在两点之间发送消息(INITIATOR>ACCEPTOR 和 ACCEPTOR>INITIATOR),这工作正常,我明白了(更多/less) 消息应该如何工作。此外,我还尝试了解多个会话是如何工作的,这对我也有好处。(1 个接受者 - 多个发起者)

当谈到我现在需要继续使用网络应用程序时,我真的很困惑。我的问题:

  1. 连接到提供的网关时,我需要运行什么才能发送和接收 FIX 消息?发起者或接受者或两者兼而有之?根据我的理解:发起者将被启动并连接到接受者,所以在这种情况下,网关将成为接受者吗?

  2. 假设我想向多个客户端提供这个 Web 平台,并且每个连接的客户端在成功登录后都会有一个专用会话。如果接受者是实际的服务器,它如何知道客户端的会话细节?(SenderCompID 和 TargetCompID)

  3. 当前架构:

    • 用于运行交易系统的专用服务器,FIX 客户端应用程序将连接到该服务器并发送/接收消息
    • Web 应用程序将创建与交易系统的会话,并将发送/接收 FIX 消息
    • 关于服务器和 Web 应用程序之间通信的建议?我正在考虑使用 activeMQ 在两点之间进行消息交换。这是个好主意吗?

我知道问太多了,但任何意见/建议将不胜感激。

谢谢你。

更新

  1. 我对 activeMQ 最大的担忧实际上是会话管理,以及是否可以使用 amq 开发这样的 Web 应用程序以在客户端-amq-交易平台之间发送/接收消息。我没有深入使用 amq 和 quickfix/j,我只是想确定它实际上是可以做到的。
  2. 基于以上,您认为这种架构可以正常工作吗?建筑学
4

1 回答 1

4
  1. 并非所有交易对手都运行接受者,但我曾经合作过的所有交易对手(大约 50 个)都是这样,所以你(可能)不需要运行接受者。
  2. 通常每个客户都有自己的 CompID 对,由交易对手提供,正是这些详细信息(唯一地)识别客户。根据我的经验,您通常为每个客户端创建一个单独的连接。
  3. 这取决于您期望的交易量,但使用 activeMQ 听起来是可行的。我会认为,除非您正在处理高频交易或大量客户,否则您将需要一个单独的专用服务器。一般来说,我使用专有的消息传递层在我们的客户端和服务器之间进行通信,但这更多地与我工作的公司有关,而不是这些系统不适合用途。

免责声明:我的经验是 C# 和 C++ FIX 开发,所以我并不真正了解活动 MQ,但根据比较,它似乎很好。

于 2014-12-03T10:57:13.223 回答