使用 Quickfix Python 创建 FIX 消息

问题描述 投票:0回答:2

我是 Quickfix Python 的新用户。我想发送报价请求。我创建新报价请求消息的功能如下:


import quickfix as fix

def create_quote_request():
    message = fix.Message()
    header  = message.getHeader()
    header.setField(fix.MsgType(fix.MsgType_QuoteRequest))
    gp      = fix.Group()
    gp.setField(fix.Symbol("GBPUSD"))
    gp.setField(fix.Side(fix.Side_BUY))
    gp.setField(fix.Account("TestAcc"))
    gp.setField(fix.Currency("GBP"))
    message.addGroup(gp)
    fix.Session.sendToTarget(message, self.sessionID)

当我执行代码时,出现如下错误:

NotImplementedError:重载函数“new_group”的参数数量错误。

可能的 C/C++ 原型有:

修复::组::组(int, int)

FIX::Group::Group(int, int, int const[])

FIX::Group::Group(int, int, message_order const &)

FIX::组::组(FIX::组 const &)

我确实阅读了文档,发现 Group 对象需要参数

 Group(int field, int delim)

不确定要传递字段和分隔符的值。感谢您的回复和帮助。

python quickfix fix-protocol
2个回答
1
投票

不确定我是否准时提供帮助。但我会尝试。我认为@JimmyNJ 正在给你正确的答案。

根据官方文档,您可以轻松做到这一点,但您不必使用通用组,您必须使用适合您的消息类型的特定组。

据我所知,你应该编写这样的程序。

from quickfix44 import QuoteRequest
import quickfix as fix
message = QuoteRequest()
group = QuoteRequest.NoRelatedSym()
group.setField(fix.Symbol("GBPUSD"))
group.setField(fix.Side(fix.Side_BUY))
group.setField(fix.Account("TestAcc"))
group.setField(fix.Currency("GBP"))
message.addGroup(group)

我假设您想根据标签编号将这 4 个标签添加到 NoRelatedSym 组中。我也用过FIX 44版本,也许你用的是不同的版本,但主要思想是一样的。


0
投票

我想在树莓派Python上安装quickfix,但由于很多抛出异常,我无法安装它。有人安装了吗??? 请让我知道你的步骤! 谢谢,库纳尔。

© www.soinside.com 2019 - 2024. All rights reserved.