快速修复:同一应用程序中的接受器和启动器
Quickfix: acceptor and initator in same application?
我是快速修复的新手(我是一个试图自学的学生),并且已经从 quickfix.org 下载了示例(在 C++ 中),并且能够将 ordermatch 连接到 tradeclient 并让他们相互交谈。 我更改了订单匹配的配置文件以允许多个客户端并使其正常工作(ordermatch 可以从多个客户端接收订单并管理订单簿)。
我一直在尝试找到一种方法来更改订单匹配以将其确认消息发送给所有客户端,而不仅仅是发件人。
我有一个单独的限价订单簿实现,并希望破解传入的消息(订单、取消等)并将它们存储在我的限价订单簿中。 我的订单簿观察这本书,并根据它做出交易决策。 问题是,我不知道如何让订单匹配将所有更新发送到此客户端。 此外,我很难弄清楚如何"加油"交易客户,不仅发送订单,而且接收和破解它们。
我想我需要在每个应用程序中都有一个接受器和一个发起者(在订单匹配和其中一个交易客户端中)——我已经读到这是可能的和常见的,但找不到任何示例代码。 我在这里走在正确的轨道上,还是有更好的方法来设置它? 有人有一些可以分享的示例代码吗? 我不打算将其用于实时交易,因此粗略的代码对我来说非常好。
提前致谢
布兰登
同一应用程序可以充当一个会话的发起方和不同会话的接受者。事实上,您可以从同一应用程序拥有多个接受器/发起方会话。配置文件需要定义多个会话。或者,您可以为每个会话提供单独的配置文件。
如果我理解正确,我认为您要做的是拦截 OMS 和代理(c.f. 客户端和服务器)之间的消息,并根据它们包含的内容进行操作。有几种方法可以做到这一点,包括在 TCP 层拦截,但我认为最简单的方法可能是按照 @DumbCoder 的建议使用 2 个单独的程序,并作为客户端的接受器连接到其中一个,处理消息,然后通过另一个协议将它们传递给另一个程序,然后从另一个程序发送它们。从理论上讲,您可以在程序中创建引擎的另一个实例,并在创建引擎的每个实例时使用不同的配置文件(当调用 FIX::FileStoreFactory storeFactory(*settings); 时)。但是,我从未见过这样做,因此觉得它可能会导致问题。如果您确实尝试使用此方法,我强烈建议将启动器和连接器放在不同的 dll 中,这可能只是将两个引擎实例分开。
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- 当该应用程序中加速文件的最后一个修改时间发生更改时,如何重新启动应用程序
- 使用WinSparkle更新新版本后,它不会自动启动应用程序
- 在启动C 应用程序时,如何检查MongoDB是否正在运行
- C#/C++:启动应用程序并处理其对系统的I/O调用
- 为什么 OpenSL ES 不会在每次启动应用程序时播放音频
- 如何知道启动应用程序的可执行名称
- Ubuntu 上的 Qt+OpenCV 无法运行/调试:无法启动应用程序
- Qt/QML:如何在不重新启动应用程序的情况下"switch to"或"open"另一个 QML 文件?
- 启动应用程序"Access denied" - Windows Vista
- 重新启动应用程序:延迟
- 远程启动C++应用程序
- 如何在每次启动应用程序时摆脱 UAC
- 在 DLL 中启动应用程序
- Windows编辑启动应用程序C/C++
- 从没有任务栏按钮的c++启动c#应用程序
- 查找启动应用程序的lpClassName,以便在FindWindow wniapi c++中使用
- 程序崩溃时重新启动应用程序
- Windows c++如何最大限度地启动应用程序
- 如何在Visual Studio中构建之前启动应用程序