标签: quickfix

如何安装支持Swig的Python扩展(QuickFix)

QuickFix包含Python的绑定.如何安装QuickFix以便我可以import quickfix在Windows上使用Python?

  • easy_install quickfix 不起作用
  • 二进制和源下载都不包括setup.py
  • 源代码下载有以下文件夹名为python(以及许多其他文件夹) - 我该如何使用它?

在此输入图像描述

二进制下载具有一个.lib文件和一个包含所有头文件的包含文件夹,因此更有前途.

请不要假设有关makefile或swig的知识:)

python windows installation quickfix

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

如何注销修复会话?

我正在使用quickfixj。我有一条自定义消息,例如“ EndTrade”,当收到该消息时,我想结束修复会话吗?我怎样才能做到这一点?我还没有找到任何办法。它不允许我使用new Session().logout()

quickfix quickfixj

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

Quickfix - 未为此消息类型定义标记

我从我的对方得到了一份执行报告,我的quickfix引擎拒绝了它"为此消息类型371 = 1300定义了标记"

似乎在说exec报告有一个非标准的标签(1300),我的quickfix引擎不喜欢它.

但是,我已将该标记添加到我的字典XML文件中,如下所示

  <field number="1300" name="MarketSegmentID" type="String" added="FIX.5.0" addedEP="52" abbrName="MktSegID" textId="FIELD_1300">
    <enum value="BETP" symbolicName="BETP" textId="ENUM_1300_BETP"/>
    <enum value="BGL" symbolicName="BGL" textId="ENUM_1300_BGL"/>
    <enum value="BMTF" symbolicName="BMTF" textId="ENUM_1300_BMTF"/>
    <enum value="BSEF" symbolicName="BSEF" textId="ENUM_1300_BSEF"/>
  </field>
Run Code Online (Sandbox Code Playgroud)

因此它应该知道标签1300.我的对方发送"1300 = BSEF",因此它是有效选择之一.

"为此消息类型定义的标记"究竟是什么意思?我该怎么办?

quickfix fix-protocol

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

检测连接丢失以修复网关?(快速解决)

我正在尝试找到一种检测连接丢失的好方法。

我的适配器是根据示例之一实现为 Fix::Application 的。它使用套接字启动器连接到修复网关。

当我拔掉互联网时,大约需要 30 秒才能触发 Fix::Application 的 onLogout 方法。似乎某些底层类会更早地意识到套接字存在问题。有没有快速的方法来解决这个问题?

c++ sockets connectivity quickfix fix-protocol

3
推荐指数
1
解决办法
2287
查看次数

QuickFix.ConfigError:配置失败:未定义FileLogPath

当我在我的quickfix配置文件中设置参数FileLogPath(带值:传出)并尝试执行以下操作时:

                SessionSettings sessionSettings = new SessionSettings(CfgFile);
                FileStoreFactory fileStoreFactory = new FileStoreFactory(sessionSettings);
                FileLogFactory fileLogFactory = new FileLogFactory(sessionSettings); 
                ScreenLogFactory screenLogFactory = new ScreenLogFactory(sessionSettings);
                MessageFactory messageFactory = new DefaultMessageFactory();
Run Code Online (Sandbox Code Playgroud)

之后尝试使用以下命令初始化socketInitiator:

socketInitiator = new ThreadedSocketInitiator(application, fileStoreFactory, sessionSettings, fileLogFactory, messageFactory);
Run Code Online (Sandbox Code Playgroud)

我得到例外

QuickFix.ConfigError: Configuration failed: FileLogPath not defined 
Run Code Online (Sandbox Code Playgroud)

但是当我为FileLogFactory设置直接路径时

                FileLogFactory fileLogFactory = new FileLogFactory("outgoing"); 
Run Code Online (Sandbox Code Playgroud)

一切都很好.

我究竟做错了什么?

配置文件看起来像这样:

[DEFAULT]
[SESSION]
ConnectionType=initiator
HeartBtInt=30
ReconnectInterval=5
FileStorePath=incoming
FileLogPath=outgoing
SenderSubId=xxxxx
Password=yyyyy
StartTime=00:00:00
EndTime=00:00:00
SocketConnectHost=aaa.aaa.aaa.aaa
SocketConnectPort=bbb
CheckLatency=N
BeginString=FIX.4.4
SenderCompId=rrrrrr
TargetCompId=vvvvvv
DataDictionary=./Specs/FIX44.xml
ValidateUserDefinedFields=N
Run Code Online (Sandbox Code Playgroud)

c# quickfix

3
推荐指数
1
解决办法
3364
查看次数

如何在QuickFIX中创建登录部分

如何在c ++中使用QuickFIX创建登录部分?我在c#或java上找到了大量有关如何执行此操作的教程和文章,但c ++上没有.

我有一个服务器(接受者)和一个客户端(发起者).客户端的用户名和密码存储在设置文件中,并在服务器程序中进行硬编码.

从我在客户端阅读的内容中我设置了用户名和密码,fromAdmin()然后阅读并检查服务器中的toAdmin(),但是我该怎么做?

这是我到目前为止所尝试的:

但是我在演员表上得到了这个错误:

cannot dynamic_cast 'message' (of type 'class FIX::Message') to type 'struct FIX44::Logon&' (target is not pointer or reference to complete type)
Run Code Online (Sandbox Code Playgroud)

我试过的是http://niki.code-karma.com/2011/01/quickfix-logon-support-for-username-password/comment-page-1/.

我还不清楚如何制作客户端和服务器.

谁能帮我?

c++ login quickfix

3
推荐指数
1
解决办法
5953
查看次数

修复会话级别拒绝

我正在研究修复会话层并且对会话级别拒绝有一些困惑。

如果在会话期间收到的消息出现乱码或无效(校验和错误、正文长度、所需标签丢失等),正确的恢复措施是什么?我在思考以下三个问题:

  1. 发送拒绝或注销消息,并在文本字段和断开连接中包含原因。
  2. 发送 REJECT 消息并包含原因(即 undefined tag )。
  3. 忽略乱码/错误消息。在这种情况下,对于下一个接收到的消息,将检测到一个序列间隙,并且通过发送 ResendRequest FIX 引擎将恢复先前接收到的乱码消息的正确版本。

另一件事是: REJECT 后面总是跟着 LOGOUT 和 DISCONNECTION 吗?

提前致谢。

finance quickfix fix-protocol quantitative-finance

3
推荐指数
1
解决办法
1532
查看次数

quickfix.Message.getField 方法

我正在迭代一个快速修复消息。对于给定的字段,如何在不知道类型的情况下获取该字段的值?
quickfix.Message 也有像 ' Double getDouble(int field), String getString(int field)' 等方法,也有像DoubleField getField(DoubleField), StringField getField(StringField )等方法。
我期待像 ' Object get(int field)' 这样的方法返回 Object
如何在不知道字段类型的情况下检索值?

java quickfix

3
推荐指数
1
解决办法
3143
查看次数

如何为 Python 安装 QuickFix?

我试图安装QuickFix的使用pip install quickfix在其网站上的建议。

但是,在安装过程中出现错误:

C++\Acceptor.cpp(21) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)

据我了解stdafx.h是一个预编译的 C++ 头文件。那么我在哪里可以得到这个文件,我如何告诉 pip 在哪里找到它?


下面给出了完整的 pip 日志以供参考:

------------------------------------------------------------
C:\Program Files (x86)\Python27\lib\site-packages\pip\__main__.py run on 04/25/16 23:14:35
Downloading/unpacking quickfix
  Getting page https://pypi.python.org/simple/quickfix/
  URLs to search for versions for quickfix:
  * https://pypi.python.org/simple/quickfix/
  Analyzing links from page https://pypi.python.org/simple/quickfix/
    Found link https://pypi.python.org/packages/63/6e/842f5fcaae56f6a992f6a4e962e256327a85e31f49cd18ef6785d71dcc11/quickfix-1.14.2.tar.gz#md5=9412b4c496403408f5cd3864a74be86f (from https://pypi.python.org/simple/quickfix/), version: 1.14.2
    Found link https://pypi.python.org/packages/8c/e1/0943a3ae87d5c9e13d97ff66e3f0d110dac3450c3b137c8fc3b61128f72a/quickfix-1.14.1.tar.gz#md5=6944d6c0840a3157eb5dae1552a7a3a6 (from https://pypi.python.org/simple/quickfix/), version: 1.14.1
    Found link https://pypi.python.org/packages/d4/73/88e00fab6aec1b5ca10816b294b351e3af2f6fc6fbf08f8c48b3ffaf60cb/quickfix-1.14.3.tar.gz#md5=6a4085d95e30af2c93e75d8e5b08d921 (from https://pypi.python.org/simple/quickfix/), …
Run Code Online (Sandbox Code Playgroud)

python installation quickfix

3
推荐指数
1
解决办法
4372
查看次数

您是否认为有必要自定义quickfix数据字典?

在与quickfix库捆绑在一起的FIX.4.4数据字典XML中,似乎某些字段被标记为必需,可能不应该符合FIXimate中描述的协议规范.

例如:

35/OrderId in message AE/TradeCaptureReport的组件组TrdCapRptSideGrp 552/NoSides

另一个例子:

15 /消息AR/TradeCaptureReportAck中的ExecType

我想,这些字段不应该是必需的,而且我可以简单地将它们标记为需要=在FIX44.xml在我的数据字典"N".

我在库存数据字典中发现可疑的必需='Y',这一点令人惊讶吗?我是否应该全神贯注地改变这些?

quickfix

3
推荐指数
1
解决办法
292
查看次数