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

如何实现Bloomberg FXGO的FIX XML Schema动态循环映射?报错求助

问题:Bloomberg FXGO FIX引擎XML Schema映射的重复组处理

错误详情

收到的FIX拒斥消息如下:

FIX Message": "8=FIX.4.4|9=156|35=3|34=1770|49=MAP|52=20220118-14:39:48.607|56=MAP_BBG_BETA|145=FX|45=1783|58=Out of order repeating group members, field=602|371=602|372=8|373=15|10=180"

错误核心:Out of order repeating group members, field=602,根源是FX衍生品交易消息中,标签602所在的字段序列出现重复(比如602先按正常顺序出现,在标签675之后再次重复出现)。

场景还原

提供的示例FIX消息中,标签600-1074的完整序列重复了两次,但当前使用的FIX_BBG.xml数据字典中仅按标签号顺序定义了一次该序列,导致消息被校验拒斥。示例消息片段(重复部分):

8=FIX.4.4|9=2317|35=8|49=MAP_BLP_BETA|56=MAP_BETA|34=1933|144=FX|52=20220708-15:01:49|30=XOFF|60=20220708-14:55:49.210|120=USD|150=F|31=1.203294|151=0|32=240003|64=20220719|6=1.203294|1056=288794.17|37=3-2-XXXXXXXXXXX-0-0|1057=Y|38=240003|218=0|39=2|40=G|460=4|1300=XOFF|1390=0|11=3-2-XXXXXXXXXXX-0-0|14=240003|194=1.2032|854=0|15=GBP|75=20220708|195=0.000593|17=3-2-XXXXXXXXXXX-0-0|167=FXSWAP|797=Y|22277=0|48=TGBYHN1234|528=P|22280=2|22=4|54=B|55=GBP/USD|119=288794.17|2489=FX_CASH_RFQ_815676229|78=2|79=TESTVENUE|80=240003|79=TESTVENUE|80=240003|555=2|600=GBP/USD|1788=1|602=TGBYHN1234|603=4|607=4|609=FXFWD|624=1|556=GBP|687=240003|654=1|587=6|588=20220719|675=USD|637=1.203294|1073=0.000094|1074=288794.17|600=GBP/USD|1788=2|602=EZBCKS7MP4D1|603=4|607=4|609=FXFWD|624=2|556=GBP|687=240003|654=2|587=6|588=20220812|675=USD|637=1.203887|1073=0.000687|1074=288936.49|10009=6|10010=VENUE1|10011=1.203334|22161=1.203927|22162=0.000593|22163=0.000687|22485=1.20324|22486=0|22545=0|10010=VENUE2|10011=1.203304|22161=1.203897|22162=0.000593|22163=0.000687|22485=1.20321|22486=0|22545=0|10010=VENUE3|10011=1.203324|22161=1.203917|22162=0.000593|22163=0.000687|22485=1.20323|22486=0|22545=0|10010=VENUE5|10011=0|22161=0|22162=0|22163=0|22485=0|22486=0|22545=0|10010=MidRate|10011=1.20324|22161=1.203845|22162=0.000605|22163=0.000695|22485=1.2032|22486=0|22545=0|10010=RefRate|10011=1.203294|22161=1.203887|22162=0.000593|22163=0.000687|22485=1.2032|22486=0|22545=0|22078=1|22079=1.203294|22080=20|22081=12|453=7|448=XOFF|447=G|452=64|802=1|523=TESTUIT12345678|803=4025|448=BGTB|447=D|452=13|802=5|523=Pricer Test USER4|803=1|523=24876081|803=2|523=USER1|803=9|523=12345QAZWSX|803=4025|523=Y|803=4047|448=125698745|447=P|452=12|2376=24|802=1|523=Y|803=4047|448=125698745|447=P|452=122|2376=24|802=1|523=Y|803=4047|448=VENUE2|447=D|452=1|802=5|523=Pricer BGAU|803=1|523=27391323|803=2|523=TESTUSER|803=9|523=12345QAZWSX|803=4025|523=Y|803=4046|448=PRODUCT TYPE|447=D|452=16|802=1|523=Dealing (RFQ)|803=4|448=24876081|447=D|452=11|1907=2|1903=TESTUTI2333333|1905=1234QWERT|1904=0|1906=5|2411=1|1903=TESTID12345667789|1905=1234QWERT|1904=0|1906=5|2411=2|768=2|769=20220708-14:55:49.210|770=1|769=20220708-14:55:40.000|770=10|2668=2|2669=0|2670=4|2669=1|2670=7|10=243| 

已尝试的无效操作

  • 在XML Schema的多个位置添加标签602
  • 调整Schema中字段的顺序
    以上操作均未解决问题,仍收到相同的顺序错误。

核心疑问

能否在XML Schema(FIX_BBG.xml)中实现动态循环映射,以支持这种重复出现的字段序列?


解决方案

  1. 正确识别FIX重复组结构
    这类重复序列是标准的FIX重复组,必须通过组计数器字段+组定义来映射,而非直接重复字段定义:

    • 找到对应重复组的计数器字段:示例消息中555=2(NoLegs字段),说明后续有2个Leg组,你看到的600-1074序列正是单个Leg的字段集合。
    • 在XML Schema中,需要将600、1788、602...1074这些字段包裹在<group>标签内,并关联计数器字段555。
  2. 修改FIX_BBG.xml的具体方式
    找到对应消息类型(如35=8,ExecutionReport)的定义,添加如下结构:

    <message name="ExecutionReport" msgtype="8" msgcat="app">
      <!-- 其他已有字段定义 -->
      <field name="NoLegs" required="Y"/>
      <group name="Legs" required="N">
        <field name="LegSymbol" required="Y"/> <!-- 对应600 -->
        <field name="LegRatioQty" required="Y"/> <!-- 对应1788 -->
        <field name="LegSecurityID" required="Y"/> <!-- 对应602 -->
        <!-- 依次添加该组内的其他字段:603、607、609...1074 -->
      </group>
      <!-- 其他已有字段定义 -->
    </message>
    

    注意:组内字段的顺序必须与消息中出现的顺序完全一致,不能按标签号排序。

  3. 验证与注意事项

    • 确认计数器字段(555)的值与实际重复组的数量匹配(示例中是2)
    • 不要在组外单独定义组内的字段(如602),否则会触发“重复字段”或“顺序错误”的校验
    • 如果是Bloomberg自定义的重复组,需参考官方提供的FXGO FIX字典文档,确保组名、计数器字段、组内字段的定义完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:55:16