财务信息交换网络平台(QuickFix / J)

时间:2014-12-03 09:29:25

标签: java activemq fix-protocol quickfixj

我只有几天熟悉FIX,我会很感激以下的一些指导。

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

提供ip和端口以连接到交易系统的网关,我已经提供了有效的消息标记。

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

当我需要立即转向网络应用程序时,我真的很困惑。我的问题:

  1. 连接到提供的网关时,为了发送和接收FIX消息,我需要运行什么?发起者或接受者或两者? 根据我的理解: 启动器将启动并连接到接受器,因此在这种情况下,网关将成为接受器吗?

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

  3. 当前架构:

    • 用于运行FIX客户端应用程序将连接并发送/接收消息的交易系统的专用服务器
    • 网络应用程序将创建与交易系统的会话,并将发送/接收FIX消息
    • 服务器和网络应用之间的通信建议?我正在考虑使用activeMQ在两点之间进行消息交换。这会是一个好主意吗?
  4. 我知道要求太多,但任何意见/建议都会受到高度赞赏。

    谢谢。

    更新

    1. 我对activeMQ的最大关注实际上是会话管理,如果有可能使用amq开发这样的web应用程序来在client-amq-trading平台之间发送/接收消息。我没有深入使用amq和quickfix / j,我只想确定实际上可以这样做。
    2. 基于以上所述,您认为这种架构能正常运行吗? architecture

1 个答案:

答案 0 :(得分:4)

  1. 并非所有交易对手都运行接受者,但我曾经使用过的所有交易者(大约50个)都是如此,您(可能)不需要运行接受者。
  2. 通常每个客户端都有自己的CompID对,由交易对手给出,而这些(唯一)标识客户端的细节。根据我的经验,您通常会为每个客户创建一个单独的连接。
  3. 这取决于您期望的交易量,但使用activeMQ听起来可行。我原以为,除非您正在与高频交易或许多客户合作,否则您需要一个单独的专用服务器。一般来说,我使用专有的消息传递层来在我们的客户端和服务器之间进行通信,但这与我工作的公司有关,而不是这些系统不适合用途。
  4. 免责声明:我的经验是在C#和C ++ FIX开发中,所以我真的不知道主动MQ,但基于比较它似乎没问题。