【问题标题】:Quickfix: acceptor and initator in same application?Quickfix:同一应用程序中的接受器和启动器?
【发布时间】:2011-05-10 03:13:02
【问题描述】:

我是 quickfix 的新手(我是一名试图自学的学生),并且已经从 quickfix.org(c++ 中)下载了示例,并且能够将 ordermatch 连接到 tradeclient 并让他们互相交谈。我更改了 ordermatch 的配置文件以允许多个客户端并使其正常工作(ordermatch 可以接收来自多个客户端的订单并管理订单簿)。

我一直在尝试找到一种方法来更改 ordermatch 以将其确认消息发送给所有客户,而不仅仅是发件人。

我有一个单独的限价订单簿实现,并且想要破解传入的消息(订单、取消等)并将它们存储在我的限价订单簿中。我的订单簿观察这本书并根据它做出交易决策。问题是,我不知道如何让 ordermatch 将所有更新发送到这个客户端。此外,我很难弄清楚如何“充实”贸易客户,不仅可以发送订单,还可以接收和破解它们。

我想我需要在每个应用程序中都有一个接受器和一个启动器(在 ordermatch 和一个 tradeclients 中)——我读过这是可能的和常见的,但找不到任何示例代码。我在正确的轨道上,还是有更好的方法来设置它?有人可以分享一些示例代码吗?我不打算将它用于实时交易,所以粗略的代码对我来说完全没问题。

提前致谢

布兰登

【问题讨论】:

  • 你能不能把你读到的网站或链接传递给同一个应用程序可以用作发起者和接受者?
  • 嗨,布兰登,一般来说,如果您提出任何问题并得到正确答案,请将答案标记为已接受(如果需要,请先添加投票)。这样可以帮助其他人查看问题。并向回答的人发送良好的确认。它还增加了您获得好答案的机会。

标签: c++ quickfix fix-protocol


【解决方案1】:

同一个应用程序可以作为一个会话的发起者和不同会话的接受者。 事实上,您可以从同一个应用程序中拥有多个 Acceptor/Initiator 会话。 配置文件需要定义多个会话。 或者您可以为每个会话设置单独的配置文件。

【讨论】:

  • 谢谢!我忘了回来这里说我能够为每个会话使用单独的配置来完成这个。
  • 仅仅因为你可以,并不意味着你应该这样做。对acceptor和initiator使用同一个fix应用实例会导致各种混乱
【解决方案2】:

如果我理解正确,我认为您要做的是拦截 OMS 和代理(参见客户端和服务器)之间的消息,并根据它们包含的内容采取行动。有几种方法可以做到这一点,包括在 TCP 层进行拦截,但我认为最简单的方法可能是使用 2 个单独的程序,正如 @DumbCoder 建议的那样,并作为来自客户端的接受器连接到其中一个程序,处理消息,然后通过另一个协议将它们传递给另一个程序,然后从另一个程序发送它们。从理论上讲,您可以在程序中创建引擎的另一个实例,并在创建引擎的每个实例时使用不同的配置文件(当 FIX::FileStoreFactory storeFactory(*settings); 被调用时)。 然而,我从来没有见过这样做,所以觉得它可能会导致问题。如果您确实尝试这种方法,我强烈建议将启动器和连接器放在不同的 dll 中,这可能足以将两个引擎实例分开。

【讨论】:

  • 科技这就是我想要做的。我从来没有做过类似@DumbCoder 和你的建议的事情。这个想法有一个通用名称吗?当你说“通过另一个协议......”时,你会建议什么协议(或者你是什么意思)。我正在寻找一些关于关键词的提示以开始谷歌搜索。在我的脑海中,我正在考虑尝试做你所说的理论上可能的事情(调用单独的配置),所以如果我弄清楚如何完成这项工作,我会发布一些代码的链接。如何确保我在不同的 dll 中有启动器/接受器?再次感谢。
  • @Brandon - 与其使用基于协议的传输,不如使用消息传递库,而不必担心所有事情。
  • @DumbCoder 我的意思是他应该使用消息传递库而不是原始协议,感谢您为我澄清。
  • @Brandon 我可能会使用 xml 通过内部 tcp/ip 连接进行传输(选择一个库),因为我们在这里大量使用 xml 进行 RPC 等。dll 解决方案需要制作 3 个项目;一个接受者,一个发起者和主程序。主程序以外的所有内容都设置为输出 dll,这些 dll 由您的主程序导入。如果您需要进一步的帮助,我可以提供(愿意工作)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多