python - 使用 Quickfix Python 创建 FIX 消息
问题描述
我是 Quickfix Python 的新用户。我想发送一个 QuoteRequest。我创建新报价请求消息的功能如下:
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++ 原型有:
FIX::Group::Group(int, int)
FIX::Group::Group(int, int, int const[])
FIX::Group::Group(int, int, message_order const &)
FIX::Group::Group(FIX::Group const &)
我确实阅读了文档,发现 Group 对象需要参数
Group(int field, int delim)
不确定传递字段和分隔符的值的内容。感谢您的回应和帮助。
解决方案
不确定我是否准时提供帮助。但是我会尝试。我认为@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 版本,也许你用的是不同的版本,但主要思想是一样的。
推荐阅读
- reactjs - React 组件:声明或声明预期 ts(1128)
- codeblocks - 如何更改 Code::Blocks 中注释的颜色?
- shell - 命令替换和变量
- python - 是否有任何函数可以在 Python 中解析完整的 SQL 查询?
- rust - 如何在 Rust 中获取向量中的最小值?
- php - Laravel 与 teradata
- python - 如何根据其他变量估算缺失值
- node.js - 使用 nodemailer 发送电子邮件不起作用
- python-3.x - tensorflow和theano的python3 keras导入错误
- java - 如何从java运行外部可执行文件并将输出保存在txt中