问题标签 [quickfixn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
quickfix - 是否有使用 QUICKFIX 库的客户端-客户端通信的开箱即用解决方案?
我正在尝试使用 quickfix/J 构建一个完全包含的交易模拟器。该系统应该由 2 个客户端应用程序(一个市场/交易所和一个经纪人)以及一个路由器(服务器/接受者)组成。我特别想知道:
客户-客户沟通
两个客户端如何相互通信,但服务器处理所有消息传递逻辑,即。消息应该通过服务器,它应该决定在哪里以及如何转发消息。我应该能够在 FIX 消息中传递 targetID,并且服务器应用程序应该处理到所需客户端的路由。
同一个端口上的多个客户端有多个客户端连接在同一个端口上,但消息应该只发送到特定的发件人comp Id,即。客户端不应与其他客户端进行通信。
我已经设置了接受器和 2 个客户端。我知道我可以使用普通的旧 Java 以编程方式执行此操作,但我想利用 quickfix 库并想要一个相对开箱即用的解决方案。
MVP:客户端(broker)通过acceptor(router)发送fix消息,消息被处理并转发到特定的market,market通过server接收消息并做一些业务逻辑,market通过acceptor将fix消息发送回client。
ps:我喜欢 quickfix 库,但如果您推荐任何其他库/语言,我会非常灵活
quickfix - 在 QuickFIX/J 中接受器如何处理消息
我正在尝试构建一个由经纪人(客户端)-路由器(接受者)-市场(客户端)组成的交易模拟器。QuickFIX/J 上的文档非常稀少。我想详细了解一下:
一般如何处理消息以及接受者是否有任何开箱即用的路由器表?
- 我想澄清一下toApp、fromApp 和 toAdmin 以及 fromAdmin方法。
实际上,我想通过接受器(路由器)在经纪人和市场之间进行通信。我知道基于标签的通信没有开箱即用的解决方案,因此我必须为此实现一些协议,但我首先需要对消息传递服务有广泛的了解。我已经阅读并查看了文档,但对我来说似乎有点抽象。我想简单地知道,客户端如何使用上述方法处理与接受者之间的消息,反之亦然。
此外,如果有任何类/对象/方法是消息处理的关键,以及它们的简单实现。
quickFiX 也使用阻塞、非阻塞或异步套接字吗?
*ps 我已经创建了 2 个客户端和 1 个接受器,并且运行良好
**我与语言无关,因此 quickFix 库的其他端口中的任何解释都会有所帮助
c# - 如何安装 QuickFix/n
我正在尝试安装 QuickFix/n,但我不知道该怎么做。
即使遵循 README 文档和http://quickfixn.org/tutorial/creating-an-application.html
当我在项目中包含库时using QuickFix;
,它说找不到
quickfix - 如何在 FIX API/QuickFIX/n 中使用限价和止损订单设置 TP 和 SL
我正在使用 QuickFIX/n 编写应用程序。我遵循了文档中的一个示例(QuickFIX/n Example)。使用这个例子,我让应用程序正常工作,但我想知道如何在我的交易时段获取市场价格,以便我可以设置充当我的市场订单的 SL/TP 的限价单和止损单。
问题是我不知道如何将定价数据输入我的交易应用程序。交易时段和定价时段的设置不同(甚至主机地址、端口、用户名、密码)。
我知道我需要在同一个应用程序中同时运行 2 个会话,定价和交易会话,我可以访问定价详细信息,例如买价/卖价,以便我可以设置限价/止损单,但我不知道如何实现这一目标。
如果有人可以在这方面提供一些帮助,那就太好了。(一个示例应用程序会很棒)
先感谢您。
c# - 使用 QuickFIX/n 接收每个报价/价格变动的买入/卖出价格的最佳方式是什么
我目前使用以下代码来获取当前价格。然后我收到上的值public void OnMessage(QuickFix.FIX44.MassQuote m, SessionID s)
但是这种方法对我来说并不理想。我希望能够在更新后立即看到当前价格。在这个小例子中,我想在Console.WriteLine()
更新后立即将最新的买/卖价格发送到控制台(我想一次只查看一个货币对的价格)。
如果有人能提出更好的方法来更快速、更轻松地获取数据,那就太好了。
先感谢您。
编辑:来自服务器的响应
8=FIX.4.4|9=378|35=i|34=2|49=XXXXX|52=20200122-10:09:26.537|56=QXXX|117=1|296=1|302=001|295= 5|299=0|106=0|134=2000000|135=1000000|188=1.10914|190=1.10916|299=1|106=10|134=1800000|135=1000000|188=1.10914|190=1.10916| 299=2|106=11|134=1500000|135=500000|188=1.10914|190=1.10916|299=3|106=6|134=1000000|135=100000|188=1.10914|190=1.10916|299= 4|106=6|134=2000000|135=5400000|188=1.10913|190=1.10917|10=113|
编辑:过了一会儿,我收到来自对方的此消息后收到此错误
收到消息
传入:8=FIX.4.4|9=502|35=W|34=7|49=XXXXX|52=20200122-10:09:28.074|56=QXXX|55=EUR/USD|262=001|268= 10|269=0|270=1.10914|271=1700000|299=1|106=6|269=0|270=1.10914|271=1000000|299=3|106=11|269=0|270=1.10914| 271=1000000|299=0|106=10|269=0|270=1.10913|271=3000000|299=4|106=10|269=0|270=1.10913|271=1500000|299=2|106= 9|269=1|270=1.10916|271=1000000|299=0|106=0|269=1|270=1.10916|271=1000000|299=1|106=10|269=1|270=1.10916| 271=500000|299=2|106=11|269=1|270=1.10916|271=100000|299=3|106=6|269=1|270=1.10917|271=4500000|299=4|106= 13|10=232
事件:消息 7 被拒绝:标签出现多次(字段=106)
quickfix - 10000 到 19999 之间的 FIX 协议标签有什么用?
我知道 FIX 协议指定了覆盖范围 5000 到 9999 的用户定义字段。相同的规范说,您可以在双方之间双边使用标签 20000 到 39999。
2009 年 12 月,全球技术委员会管理委员会批准使用 20000 到 39999 范围内的标签号作为用户定义的标签,以便在各方之间双边使用。
但也使用了 10000 到 19999 之间的标签 - 例如Trading Technologies 使用标签 18214作为 MarketDataRequest (V) 中的 IncludeNumberOfOrders。
有人可以解释标签 10000 到 19999 的用法并概述 FIX 协议规范的当前标签范围吗?
quickfix - MsgSeqNum 序列和不同的会话
例如,我为 QuickFix/n 配置了两个会话,例如:
这些会话应该有不同的MsgSeqNum
序列,即如果我向Logon
第一个会话发送消息,它应该有MsgSeqNum = 1
,而Logon
消息发送到第二个会话应该有MsgSeqNum = 1
,因为我将消息发送到具有不同序列的不同会话。我对吗?
还有一个相关的问题。是否可以MsgSeqNum
为不同的会话使用一个共享序列?
更新
我正在与第三方 FIX 服务器集成。他们的支持告诉我我应该发送两条Logon
消息(两个会话),但是当 QuickFix/n 发送它们时,我看到第二个响应的以下错误Logon
:MsgSeqNum too low, expecting 3 but received 1
. 看起来他们的 FIX 服务器具有这些会话的共享/公共 MsgSeqNum 序列(但我不确定)。
所以,我想用这个问题来澄清 QuickFix/n 如何与MsgSeqNum
序列一起工作,因为他们糟糕的文档并没有突出这一时刻。
quickfix - 如何订购登录消息?
例如,我有几个会话的 QuickFix/n 配置。我注意到 QuickFix/nLogon
以随机顺序为这些会话发送消息(但我不确定)。
是否可以设置/配置固定的Logon
消息顺序?
更新
我正在与第三方 FIX 服务器集成。他们的支持对我说,我应该Logon
按顺序发送两条消息(两个会话)。以下是他们的部分信息:
所以,看起来我应该先发送Logon
到STREAMING
会话,然后再发送Logon
到TRADING
会话。
问题解决了
第三方 FIX 服务器的支持团队发了一条消息,他们说Logon
应该同时发送消息。所以,我的决定(关于顺序Logon
消息)是错误的。
quickfix - 如何按顺序发送登录消息?
QuickFix/nLogon
自动并行发送消息,看起来我无法控制。我已经阅读了与这个库相关的所有糟糕的文档,但没有找到如何Logon
一一发送消息。
我想Logon
按顺序发送消息,即发送第一条Logon
消息并接收Logon
响应,然后发送第二条Logon
消息并接收第二条Logon
响应,依此类推。
可以使用 QuickFix/n 吗?
PS 我想要这样奇怪的东西,因为看起来第三方 FIX 服务器要求我Logon
按顺序发送消息。
问题解决了
第三方 FIX 服务器的支持团队发了一条消息,他们说Logon
应该同时发送消息。所以,我的决定(关于顺序Logon
消息)是错误的。
fix-protocol - FIX 协议:CashOrderQty 的条件必填字段缺失
我正在尝试使用 QuickFIX 在 .NET 中实现 FIX 协议,以便自动发送交易订单。发送带有 OrderQty 标签的订单不会引发任何问题,但是在使用 CashOrderQty 标签时,主机会返回错误消息“有条件的必填字段缺失”。该消息已经包含 CashOrderQty 所需的所有指定字段,如果我将 OrderQty 添加到消息中,该错误才会消失,但是文档明确指出必须在消息中发送两者中的一个。