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

使用最新Quickfix时,如何正确设置TradeCaptureReport的NoSides和Side?

问题描述

使用最新版Quickfix模拟发送TradeCaptureReport时,设置必填组件NoSides和Side取值时触发报错:

......22458=Incorrect NumInGroup count for repeating group, field=....

现有相关方案及库内示例均基于4.4版本,不适用于当前场景。当前代码实现如下:

TradeCaptureReport tradeCaptureReport = new TradeCaptureReport();
Instrument instrument = new Instrument();
instrument.set(new Symbol("XXX"));//55
instrument.set(new SecurityID("XXXXXX")); //48

TrdCapRptSideGrp trdCapRptSideGrp =new TrdCapRptSideGrp();
 // Create and add the NoSides group with the individual sides of the trade
NoSides noSides = new NoSides();
noSides.setValue(NoSides.ONE_SIDE);
trdCapRptSideGrp.set(noSides);
trdCapRptSideGrp.setField(new Side(Side.BUY));
tradeCaptureReport.set(new LastPx(123456));
tradeCaptureReport.set(new LastQty(1234));
tradeCaptureReport.set(new SettlDate("20231018"));
tradeCaptureReport.set(instrument);
tradeCaptureReport.set(trdCapRptSideGrp);
解决方案

最新版Quickfix中,TrdCapRptSideGrp作为重复组,不能直接通过setField设置Side字段,需通过添加组实例的方式处理。修正后的代码如下:

TradeCaptureReport tradeCaptureReport = new TradeCaptureReport();
Instrument instrument = new Instrument();
instrument.set(new Symbol("XXX"));//55
instrument.set(new SecurityID("XXXXXX")); //48

// 初始化TrdCapRptSideGrp组件
TrdCapRptSideGrp trdCapRptSideGrp = new TrdCapRptSideGrp();
// 创建NoSides组实例并注入Side字段
NoSides noSidesGroup = new NoSides();
noSidesGroup.set(new Side(Side.BUY));
// 将组实例添加到TrdCapRptSideGrp中
trdCapRptSideGrp.addGroup(noSidesGroup);

tradeCaptureReport.set(new LastPx(123456));
tradeCaptureReport.set(new LastQty(1234));
tradeCaptureReport.set(new SettlDate("20231018"));
tradeCaptureReport.set(instrument);
tradeCaptureReport.set(trdCapRptSideGrp);

关键修正点:

  • 无需手动设置NoSides数值,Quickfix会自动根据添加的组数量计算该字段值,避免手动计数错误
  • 使用addGroup()方法将包含Side字段的NoSides组实例添加到TrdCapRptSideGrp,匹配新版库对重复组的处理逻辑

内容的提问来源于stack exchange,提问作者Belgacem Gmiden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:46:13