标签: quickfix

QuickFix/C++ 中的重复组

我正在编写一个使用快速修复库的程序。文档很差,所以我请求SO研究员的帮助。

我在 Group 类中看到有迭代器。所以我认为有一些类似 STL 的方法来解析重复组。我错了吗?有人可以提供一个简单的例子吗?

预先非常感谢您。

c++ stl quickfix

5
推荐指数
1
解决办法
6153
查看次数

如何控制QuickFix打印输出

我正在使用QuickFix和Python绑定.
如何控制QuickFix的打印输出?
据我所知,没有配置参数,QuickFix将大量日志转储到标准输出...

这是一个示例日志(用xxxxx替换私人信息)

<20110603-16:56:28.172, FIX.4.3:xxxxx->xxxxx, incoming>
  (8=FIX.4.3?9=310?35=W?34=5?49=xxxxx?52=20110603-16:57:01.872?56=xxxxx?57=xxxxx?55=xxxxx?262=cb8f5a29-25bb-4f7b-9ec7-a9a8975715eb?460=4?541=20110607?268=2?269=0?270=2.76323?15=xxxxx?271=2000000?276=A?282=xxxxx?299=1914b8d_BID?290=0?269=1?270=2.76323?15=xxxxx?271=2000000?276=A?282=xxxxx?299=xxxxx?290=0?10=xxxxx?)
Run Code Online (Sandbox Code Playgroud)

logging stdout quickfix

5
推荐指数
2
解决办法
7161
查看次数

如何使用 QuickFixJ 将字符串 FIX 消息转换为 FIX FIX50SP2 格式

需要快速帮助。我是 QuickFixJ 的新手。我的 txt 文件中有一条 FIX 消息。我需要将其转换为 FIX50SP2 格式。我附上代码片段。

String fixMsg = "1128=99=25535=X49=CME34=47134052=20100318-03:21:11.36475=20120904268=2279=122=848=336683=607400107=ESU2269=1270=140575271=152273=121014000336=2346=521023=1279=122=848=336683=607401107=ESU2269=1270=140600271=206273=121014000336=2346=681023=210=159";

System.out.println("FixMsg String:"+fixMsg);
Message FIXMessage = new Message();
DataDictionary dd = new DataDictionary("FIX50SP2.xml");
FIXMessage.fromString(fixMsg, dd, false);
System.out.println("FIXMessage Output:" + FIXMessage.toString()); // Print message after parsing
MsgType msgType = new MsgType();
System.out.println(FIXMessage.getField(msgType));
Run Code Online (Sandbox Code Playgroud)

这是输出:

FixMsg String:1128=99=15835=X49=CME34=47164052=2012090312102051175=20120904268=1279=122=848=336683=607745107=ESU2269=1270=140575271=123273=121020000336=2346=501023=110=205
FIXMessage Output:9=6135=X34=47164049=CME52=2012090312102051175=20120904268=110=117
quickfix.FieldNotFound: Field [35] was not found in message.
    at quickfix.FieldMap.getField(FieldMap.java:216)
    at quickfix.FieldMap.getFieldInternal(FieldMap.java:353)
    at quickfix.FieldMap.getField(FieldMap.java:349)
    at MainApp.main(MainApp.java:52)
Run Code Online (Sandbox Code Playgroud)

我想提取 MsgType 字段(字段 35)。你能告诉我我错在哪里吗?我观察到的是,解析为 FIX50SP2 格式后,转换 FIX 消息缺少许多数据元素(有关详细信息,请参阅输出)

谢谢

java quickfix fix-protocol

5
推荐指数
1
解决办法
7045
查看次数

如何在 QuickFixj 中动态地就 SenderCompID 和 TargetCompID 达成一致?

假设我正在运行一个基于网络的交换并且有一个新客户注册。我为该客户提供了一个新的 CompID,现在我想将该 CompID 添加到我的接受方。我是否必须重新启动我的接受器或者可以动态完成吗?

必须提前就 CompID 达成一致,然后将其粘贴到某处的配置中,这似乎不太具有可扩展性。

我见过一些据说可以做到这一点的示例,但它们似乎只是通过将配置设置为*. 还有其他方法可以做到这一点吗?

java quickfix fix-protocol quickfixj

5
推荐指数
2
解决办法
2523
查看次数

quickfix - 配置失败:<message>不包含任何字段

我正在使用带有python绑定的quickfix.在使用初始化时FIX44.xml我收到以下错误:

Traceback (most recent call last):
  File "C:\dev\my_proj\quickfix_app.py", line 1227, in start_app
    initiator = fix.SocketInitiator(self, storeFactory, settings, logFactory )
  File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34432, in __init__
    SocketInitiatorBase.__init__(self, application, storeFactory, settings, logFactory)
  File "C:\Users\Me\virtual_environments\my_env\lib\site-packages\quickfix.py", line 34316, in __init__
    this = _quickfix.new_SocketInitiatorBase(*args)
ConfigError: Configuration failed: FIX44.xml: Configuration failed: <message> contains no fields
Run Code Online (Sandbox Code Playgroud)

错误源自以下代码中的最后一行:

settings     = fix.SessionSettings('FIX44.xml')
storeFactory = fix.FileStoreFactory( settings )
logFactory   = fix.ScreenLogFactory(settings)
initiator    = fix.SocketInitiator(self, storeFactory, settings, logFactory )
Run Code Online (Sandbox Code Playgroud)

我使用相同的错误FIX43.xml,但FIX42.xml工作正常.这些xml文件使用XML验证器签出.由于我正在使用来自quickfix网站的示例xml文件,我怀疑问题与文件有关.
什么可能导致此错误?

quickfix

5
推荐指数
1
解决办法
954
查看次数

从快速修复消息中获取字段

我正在使用带有 python 的 quickfix。查看此处的文档页面告诉我们如何获取字段。假设 a message = fix.message(with quickfix as fix) 来自交易对手。我可以通过调用获得 35 (MsgType) 字段

message.getHeader().getField(fix.MsgType())

例如,它返回 35=X.

我的问题是:是否有任何方法可以返回X?或者我是否必须切片所有内容(例如35=X[3:],返回X)并因此知道所有字符串的长度?

python quickfix fix-protocol

5
推荐指数
1
解决办法
4338
查看次数

使用 QuickFIX 获取收到的 FIX 消息的所有现有字段

QuickFIX 是否提供在单个步骤中获取传入 FIX 消息的所有现有字段的可能性?(我为 Python 使用 1.14.3 版。)

根据 QuickFIX 文档,可以通过某种方式获取字段值:

price = quickfix.Price()
field = message.getField(price)
field.getValue()
Run Code Online (Sandbox Code Playgroud)

各种消息类型包含不同的字段,因此对每个字段都这样做会很尴尬。此外,有时不知道消息中是否存在某些字段。如何在不知道消息包含哪些字段的情况下获取消息的所有字段?

python quickfix fix-protocol

5
推荐指数
1
解决办法
1463
查看次数

MacOS 上 python 安装失败的快速修复

我正在尝试在 Centos7/Ubuntu16 和 MacOSX 上安装适用于 python 的 QuickFix FIX 引擎模块。我按照http://www.quickfixengine.org/quickfix/doc/html/上的说明进行操作

\n

Centos/Ubuntu 上的安装与 ; 完美配合pip3.6 install quickfix。但是我在 MacOSX Mojave 10.14 上不断收到错误

\n

首先我运行 axcode-select --install来安装命令行工具,然后我brew install gcc.

\n

最后我执行了pip3 install quickfix. 该命令一直失败,并出现很长的错误日志,如下所示:

\n
Collecting quickfix\n  Downloading https://files.pythonhosted.org/packages/62/b0/caf2dfae8779551f6e1d2bc78668d8f5a2303d21311fdd54345722b68cbc/quickfix-1.15.1.tar.gz (1.5MB)\n     |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 1.5MB 8.0MB/s \nBuilding wheels for collected packages: quickfix\n  Building wheel for quickfix (setup.py) ... error\n  ERROR: Command errored out with exit status 1:\n   command: /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c \'import sys, setuptools, tokenize; …
Run Code Online (Sandbox Code Playgroud)

python macos installation quickfix fix-protocol

5
推荐指数
0
解决办法
1513
查看次数

更改 FIX 消息中字段的顺序

我使用 QuickFix/n 启动器。我的经纪人拒绝了我的登录消息,理由是消息标题中的字段(标签)顺序错误。顺序应该是 49、56、34、52,而不是 34、49、52、56。

QuickFix/n 似乎在将消息发送到会话时自动按标签号对消息的三个区域(标题、正文、尾部)内的各个字段进行排序。

有没有办法改变发送给接受者的消息中字段的顺序?有没有办法防止排序行为?(向消息添加组或更改数据字典不起作用。)

或者,如果 QuickFix/n 无法做到这一点,是否有 FIX 引擎允许更改消息中字段的顺序?

quickfix fix-protocol

4
推荐指数
1
解决办法
6144
查看次数

Python - 快速修复:尝试登录时 getHeader() 属性错误

我正在使用 Quickfix,并修改了 toAdmin 函数以将用户名和密码插入登录消息中。我根据 C++ 指令改编了代码,但遇到了奇怪的 getHeader() 属性错误。

回溯如下:

<20151223-10:48:31.142, FIX.4.2:MATHCLIENT1->CSTEST, event>
  (Created session)
Type 1 for order , 2 to exit and d to debug.
<20151223-10:48:31.149, FIX.4.2:CLIENT1->TEST, event>
  (Connecting to hostX on port Y)

Traceback (most recent call last):
  File "initiator.py", line 28, in toAdmin
    message.getHeader ().getField (msgType)
  File "C:\Users\user\Anaconda\lib\site-packages\quickfix.py", line 27015, in <lambda>
    __getattr__ = lambda self, name: _swig_getattr(self, SessionID, name)
  File "C:\Users\user\Anaconda\lib\site-packages\quickfix.py", line 57, in _swig_getattr
    raise AttributeError(name)
AttributeError: getHeader
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

import sys
import time
import thread …
Run Code Online (Sandbox Code Playgroud)

python quickfix python-2.7

4
推荐指数
1
解决办法
1522
查看次数