You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quickfix Python创建FIX QuoteRequest消息时Group初始化报错如何解决

报错原因

你遇到的报错是因为fix.Group类不能直接空实例化,必须传入两个必填构造参数,两个参数定义如下:

  • 第一个参数field:该重复组对应的计数字段Tag值,作用是标识当前重复组的总条目数
  • 第二个参数delim:该重复组内部第一个字段的Tag值,作为重复条目分隔标识,QuickFIX通过该字段区分不同的重复组条目

针对QuoteRequest类型的消息,你使用的是关联标的重复组,对应计数字段为NoRelatedSymTag值146,组内第一个字段为SymbolTag值55,直接使用QuickFIX内置常量获取Tag值更稳妥,避免硬编码出错概率更低。

修正后的代码
import quickfix as fix

def create_quote_request():
    message = fix.Message()
    header  = message.getHeader()
    header.setField(fix.MsgType(fix.MsgType_QuoteRequest))
    # 正确实例化重复组
    gp = fix.Group(fix.NoRelatedSym().getField(), fix.Symbol().getField())
    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)
补充说明

不同消息的重复组参数不固定,需要结合你使用的FIX版本和具体消息类型匹配对应的字段定义:

  • 若使用其他消息的重复组,只需要替换为对应计数字段和组内首字段的Tag即可
  • 不确定Tag值时,直接调用对应字段类的getField()方法获取即可,不需要手动记数字

内容的提问来源于stack exchange,提问作者nikhil sukumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:51:02