在 Quickfix C++ 中重复组消息

2024-06-08

我们似乎无法使用 QuickFix 处理某些群组消息。

我正在尝试使用 QuickFix (C++) 建立与 ICE 交换的连接。我创建了一个自定义数据字典来处理 ICE 的非标准消息。要处理的第一条消息是 SecurityDefinition。该消息包含大约 13000 个条目,分为 100 个块。我在下面附上了消息(为了清楚起见,添加了 CR/LF 的前两个条目)。

我的问题是在数据字典中,我将一个组定义为条目的一部分,其中包含它们在组中指定的所有字段。然而,该消息在到达破解者之前就因具有无效标签(标签 = 305)而被拒绝。

消息 2 被拒绝:未为此消息类型定义标签:305

这个字典条目看起来正确吗?有没有关于如何处理群组消息的文档?

字典条目:

<message name='SecurityDefinition' msgcat='app' msgtype='d'>
    <field name='SecurityResponseID' required='Y' />
    <field name='SecurityResponseType' required='Y' />
    <field name='SecurityReqID' required='Y' />
    <field name='TotNoRelatedSym' required='N' />
    <field name='NoRpts' required='N' />
    <field name='ListSeqNo' required='N' />
    <group name='NoUnderlyings' required='N'>
        <field name='UnderlyingSymbol' required='N' />
        <field name='UnderlyingSecurityID' required='N' />
        <field name='UnderlyingSecurityIDSource' required='N' />
        <field name='UnderlyingCFICode' required='N' />
        <field name='UnderlyingSecurityDesc' required='N' />
        <field name='UnderlyingMaturityDate' required='N' />
        <field name='UnderlyingContractMultiplier' required='N' />
        <field name='IncrementPrice' required='N' />
        <field name='IncrementQty' required='N' />
        <field name='LotSize' required='N' />
        <field name='NumofCycles' required='N' />
        <field name='LotSizeMultiplier' required='N' />
        <field name='Clearable' required='N' />
        <field name='StripId' required='N' />
        <field name='StripType' required='N' />
        <field name='StripName' required='N' />
        <field name='HubId' required='N' />
        <field name='HubName' required='N' />
        <field name='HubAlias' required='N' />
        <field name='UnderlyingUnitOfMeasure' required='N' />
        <field name='PriceDenomination' required='N' />
        <field name='PriceUnit' required='N' />
        <field name='Granularity' required='N' />
        <field name='NumOfDecimalPrice' required='N' />
        <field name='NumOfDecimalQty' required='N' />
        <field name='ProductId' required='N' />
        <field name='ProductName' required='N' />
        <field name='ProductDescription' required='N' />
        <field name='TickValue' required='N' />
        <field name='ImpliedType' required='N' />
        <field name='PrimaryLegSymbol' required='N' />
        <field name='SecondaryLegSymbol' required='N' />
        <field name='IncrementStrike' required='N' />
        <field name='MinStrike' required='N' />
        <field name='MaxStrike' required='N' />
    </group>
</message>

实际消息:

8=修复.4.49=5004335=d49=ICE34=252=20121017-00:39:41.38556=600357=23322=3924323=4320=1393=1310382=13267=1711=100 311=1705282309=TEB SMG0013-TFL SMG0013305=8463=FXXXXX307=NG 基差期货 Spr - TETCO-ELA/TGP-500L - Feb13542=20130131436=1.09013=0.00059014=2500.09017=2 5009022=289024=19025=Y916=20130201917=201302289201=11969200 =129202=Feb139300=60589301=Texas Eastern Transmission Corp. - 东路易斯安那区/田纳西州天然气管道公司 - L 区,500 Leg Pool9302=TETCO-ELA/TGP-500L998=MMBtus9100=USD9101=USD / MMBtu9085=每日9083=49084= 09061=4909062=NG基差期货Spr9063=天然气基差期货价差9032=1.259004=17051939005=1353778 311=1714677309=PGE SQF0014.H0014-SCB SQF0014.H0014305=8463=FXXXXX307=NG 基差期货 Spr - PG&E-东荟城/南澳-东荟城 - 第一季度 14542=20131231436=1.09013=0.0005 9014=2500.09017=25009022=909024=19025=Y916= 20140101917=201403319201=12339200=159202=Q1 149300=59979301=PG&E-东荟城/南荟-东荟城9302=PG&E-东荟城/南荟-东荟城998=MMBtus9100=USD9101=USD / MMBtu9085=每日9083=49084=09061=4909062=NG基差期货SPR9063=天然气基差期货价差9032=1.259004=13430529005=1344660


我们通过创建一个名为 SecDefICE 的自定义组件(包含所有自定义字段)并在自定义数据字典中重新定义 SecurityDefinition 消息来解决这个问题。

我们现在可以读取组信息了。唯一的缺点是我们必须使用通用组并按数字获取字段,而不是以类型安全的方式进行。当我有时间时,我将创建一个新的命名空间(FIXICE 等),其中包含正确的头文件(消息、字段、自定义破解程序等)

下面列出的是我们字典中的定义。

新组件

  <component name='SecDefICE' required='N'>
   <field name='UnderlyingSymbol' required='N' />
   <field name='UnderlyingSecurityID' required='N' />
   <field name='UnderlyingSecurityIDSource' required='N' />
   <field name='UnderlyingCFICode' required='N' />
   <field name='UnderlyingSecurityDesc' required='N' />
   <field name='UnderlyingMaturityDate' required='N' />
   <field name='UnderlyingContractMultiplier' required='N' />
   <field name='IncrementPrice' required='N' />
   <field name='IncrementQty' required='N' />
   <field name='LotSize' required='N' />
   <field name='NumofCycles' required='N' />
   <field name='LotSizeMultiplier' required='N' />
   <field name='Clearable' required='N' />
   <field name='StartDate' required='N' />
   <field name='EndDate' required='N' />
   <field name='StripId' required='N' />
   <field name='StripType' required='N' />
   <field name='StripName' required='N' />
   <field name='HubId' required='N' />
   <field name='HubName' required='N' />
   <field name='HubAlias' required='N' />
   <field name='UnderlyingUnitOfMeasure' required='N' />
   <field name='PriceDenomination' required='N' />
   <field name='PriceUnit' required='N' />
   <field name='Granularity' required='N' />
   <field name='NumOfDecimalPrice' required='N' />
   <field name='NumOfDecimalQty' required='N' />
   <field name='ProductId' required='N' />
   <field name='ProductName' required='N' />
   <field name='ProductDescription' required='N' />
   <field name='TickValue' required='N' />
   <field name='ImpliedType' required='N' />
   <field name='PrimaryLegSymbol' required='N' />
   <field name='SecondaryLegSymbol' required='N' />
   <field name='IncrementStrike' required='N' />
   <field name='MinStrike' required='N' />
   <field name='MaxStrike' required='N' />
  </component> 

新消息定义

  <message name='SecurityDefinition' msgcat='app' msgtype='d'>
   <field name='SecurityResponseID' required='Y' />
   <field name='SecurityResponseType' required='Y' />
   <field name='SecurityReqID' required='Y' />
   <field name='TotNoRelatedSym' required='N' />
   <field name='NoRpts' required='N' />
   <field name='ListSeqNo' required ='N' />
   <group name='NoUnderlyings' required='N'>
    <component name='SecDefICE' required='N' />
   </group>
   <field name='Text' required='N' />
    <!-- these are the original fields in 4.4 spec -->
    <!-- group name='NoUnderlyings' required='N' -->
    <!-- component name='UnderlyingInst' required='N' -->
    <!-- /group -->
    <!-- component name='Instrument' required='N' -->
    <!-- component name='InstrumentExtension' required='N' -->
    <!-- field name='Currency' required='N' -->
    <!-- field name='TradingSessionID' required='N' -->
    <!-- field name='TradingSessionSubID' required='N' -->
    <!-- field name='EncodedTextLen' required='N' -->
    <!-- field name='EncodedText' required='N' -->
    <!-- group name='NoLegs' required='N' -->
    <!-- component name='InstrumentLeg' required='N' -->
    <!-- /group -->
    <!-- field name='ExpirationCycle' required='N' -->
    <!-- field name='RoundLot' required='N' -->
    <!-- field name='MinTradeVol' required='N' -->
  </message>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Quickfix C++ 中重复组消息 的相关文章

  • Quickfix 无法读取重复组

    我在 Windows 中使用 Quickfix 和 python 绑定 我过去曾能够提出市场数据请求 我最近更换了不同的 API 提供商 Cunningham 又名 CTS 并且遇到了很多问题 然而 至少其中之一似乎是 Quickfix 内
  • 使用 Python Quickfix 读取自定义消息中的重复组

    我正在尝试使用 Python 和 Quickfix 从 FIX 引擎中读取数据 并设法通过修改所使用的数据字典 带有必要的消息组 使引擎识别自定义消息 我现在面临的问题是从自定义消息中读取重复组 这快速修复文档显示以下内容 import q
  • 如何在FIX中手动计算CheckSum?

    我有一个FixMessage我想手动计算校验和 8 FIX 4 2 9 49 35 5 34 1 49 ARCA 52 20150916 04 14 05 306 56 TW 10 157 这里的体长是这样计算的 8 FIX 4 2 9 4
  • 编译一个快速修复程序

    我正在尝试使用 QuickFix 库通过 FIX 协议连接到代理 我刚刚使用他们提供的文档构建了库 并立即使用他们的示例代码 include quickfix FileStore h include quickfix FileLog h i
  • QuickFix 发送时间(字段 52)减少毫秒

    我正在使用 Python API 运行 QuickFix 并使用 FIX4 2 连接到 TT FIX 适配器 我已成功登录并发送市场数据请求 回复都很好啊在我的消息日志 屏幕日志和文件日志 中 我收到一个 SendingTime 字段 52
  • fastfix.Message 无法转换为quickfix.fix50sp2.Message

    我使用的是最新的快速修复版本 1 6 0 我已经有针对 1 5 3 编写的代码 我想做的是将其升级到 1 6 0 我遇到的问题是当我使用它抛出的破解 msg sessionID 方法时quickfix Message cannot be c
  • 如何注销修复会话?

    我正在使用quickfixj 我有一条自定义消息 例如 EndTrade 当我收到该消息时 我想结束修复会话吗 我怎样才能做到这一点 我还没有找到任何方法可以做到这一点 它不允许我使用new Session logout 我得到了我的问题的
  • QuickFIX/J 错误值超出此标签的范围

    我已经实现了一个使用 QuickFIX J 版本 1 6 0 的 Java 程序 它从具有重复组 NoPartyIDs 标签 453 的对方获取 FIX 消息 执行报告 并遵循以下值 Tag 453 NoPartyIDs 4 Tag 447
  • 尝试将字符串转换为 MarketDataIncrementalRefresh

    我有一个文本文件FIX messages 所有这些和 MarketDataIncrementalRefresh 类型 X 我正在尝试找到一种使用的方法QuickFIX in C 创造MarketDataIncrementalRefresh消
  • 如何在快速修复消息中获得重复组

    对于像交易捕获报告这样的快速修复消息 它有时可能具有嵌套的重复组 看看纽约证券交易所文件第 10 页上的交易捕获报告消息 https www nyse com publicdocs nyse markets nyse NYSE TRF Me
  • Python - 快速修复:尝试登录时 getHeader() 属性错误

    我正在使用 Quickfix 并修改了 toAdmin 函数以将用户名和密码插入登录消息中 我根据 C 指令改编了代码 但遇到了奇怪的 getHeader 属性错误 回溯如下 lt 20151223 10 48 31 142 FIX 4 2
  • 捕获未通过 QuickFix 验证的传入 FIX 消息

    A Quickfix http www quickfixengine org 客户端使用以下方法验证传入消息XML 规范文件 http www quickfixengine org documentation 如果消息验证失败 quickf
  • 处理 FIX 拒绝:使用 QuickFix/J 按 RefSeqNum 中的序列号检索 FIX 消息

    我正在尝试处理修复拒绝 MsgType 35 3 但我不清楚如何检索 FIX Reject 消息引用的消息 FIX Reject 是指被拒绝的消息MsgSeqNum 在里面RefSeqNum字段 标签 45 但是我不知道如何通过序列号获取被
  • 在 QuickFix 中,RelatedSymGroup 顺序设置的是什么

    相关这个问题 https stackoverflow com questions 32012881 quickfixj swaps group order交易对手提供商引擎以某种方式设置为检查 FIX 标签的组顺序并拒绝任何不符合预期顺序的
  • 如何为周一至周五的每日会话配置 QuickFix/J?

    我在用快速修复 J http quickfixengine org 1 6 4 英寸骆驼快速修复 https camel apache org staging components latest quickfix component htm
  • QuickFIX - 设置开始时间\结束时间

    QuickFIX http www quickfixengine org has a 配置文件 http www quickfixengine org quickfix doc html configuration html你设置的地方St
  • 实体框架 5 - 抽象类型“X”没有映射的后代,因此无法映射

    尝试操作时出现以下错误这个对象 https github com gbirchmeier quickfixn blob master QuickFIXn Message FIX44 TradeCaptureReportRequestAck
  • 快速修复:如何在 Python 中使用 SSL

    对不起我的英语不好 我在连接用 python 开发的客户端 quckfix 时遇到问题 配置文件没有像我想要的那样响应 如果我将路径 不正确的路径 强制错误 更改为文件 pem 并重新启动应用程序 该应用程序什么也不做 只是保持正常运行 就
  • 在 Quickfix C++ 中重复组消息

    我们似乎无法使用 QuickFix 处理某些群组消息 我正在尝试使用 QuickFix C 建立与 ICE 交换的连接 我创建了一个自定义数据字典来处理 ICE 的非标准消息 要处理的第一条消息是 SecurityDefinition 该消
  • 修复:客户端要求 GapFill,但我想发送 SequenceReset。应该有什么顺序?

    所以我的客户请求间隙填充 因为我们的序列已关闭 我不想重播消息 而是想发送 SequenceReset 我的问题很简单 我要发送给他的这个SequenceReset的消息序列应该是什么 我不希望我的客户端放弃它 因为它无法识别我的 Sequ

随机推荐

  • Java 中 LINQ 的等价物是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中 LINQ 的等价物是什么 没有什么比 LINQ for Java 更好的了 Edit 现在
  • PHP PDO:将数据作为对象获取 - 在调用 __construct 之前分配的属性。它是否正确?

    完整的问题应该是 这是正确的还是我不能指望的错误 为什么这是正确的行为 我一直在更多地使用 PDO 特别是直接将数据提取到对象中 在这样做的过程中我发现了这一点 如果我直接将数据获取到像这样的对象中 STH DBH gt prepare S
  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • WooCommerce 添加到购物车后停止重定向

    我希望在用户单击 添加到购物车 按钮后完全删除任何重定向 实际上我没有使用产品页面 我使用一个带有产品链接的简单按钮 如下所示 add to cart 492 我的用户将单击我页面上的多个 添加到购物车 按钮 因此在单击第一个按钮后他无法重
  • 在 Swift 中在地图上显示路线

    我试图在苹果地图上绘制两点之间的路线 Swift 代码 下面的结构体用于存储坐标 struct GeoLocation var latitude Double var longitude Double func distanceBetwee
  • Maven 使用反应器选项 -pl 构建二级+子项目

    我的maven项目结构如下 Project A pom xml ProjectB pom xml ProjectC pom xml ProjectD pom xml ProjectY pom xml 通过使用 Maven Reactor 选
  • 在类方法 Python 中调用多处理

    最初 我有一个类来存储一些处理后的值 并通过其他方法重用这些值 问题是当我尝试将类方法划分为多个进程以加速时 python 生成了进程 但它似乎不起作用 正如我在任务管理器中看到的那样 只有 1 个进程在运行 并且结果从未传递 我做了几次搜
  • 如何在 Flutter 中使颜色成为 UI 文本的一部分?

    如何更改部分文本的颜色 我正在努力做到这一点 所以文字上写着 Don t have an account Register now 但我想给它添加颜色Register now 部分 如果可能的话我该怎么做 Use RichText http
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • iOS 8.0 中的 UISearchBar barTintColor clearColor 错误

    在我的应用程序中我正在使用UISearchBar在 xib 与Xcode6 我给的条形锡颜色是透明颜色 它正在努力iOS 7 1 below 但主要问题在于iOS 8 0它的颜色不清晰 它显示黑色 看图片 任何对这个问题有冒险精神的人 我在
  • Windows XP 上无法打开存储库错误

    我正在尝试提交到我的本地 SVN 它一直工作得很好 但今天它给出了这个错误 Unable to open repository file C wamp www svns myproject dir subdir 可能是什么问题呢 编辑 完整
  • 表单.位置不起作用

    我之前问过这个问题 以为我已经解决了 但它仍然不起作用 Form Show 稍微移动表单位置 https stackoverflow com questions 1214014 form show moves form position s
  • 反应式形式的 NgbDatepicker:设置初始值

    这可能是我一段时间以来处理过的最令人沮丧的问题之一 一般来说 日期 尤其是 NgbDatepicker 在 Angular 中处理起来有点麻烦 我正在 Angular 8 中针对反应 式表单实现 NgbDatepicker 我的问题的要点是
  • 用于验证一个参数的多种类型和值的 json 架构

    请在这件事上给予我帮助 我尝试编写一个 json 模式来验证以下对象 json 对象 param value 可能的值 all 任意整数的数组 所以它是一个简单的 json 对象 其中包含一个变量 可以是字符串 all 也可以是任何整数数组
  • Web 扩展中共享 vuex 状态(死对象问题)

    我正在尝试在网络扩展中使用共享的 vue js 状态 状态存储在后台脚本的 DOM 中并呈现在弹出页面中 第一次尝试 我的第一次尝试是使用一个没有 vuex 的简单商店 背景 js var store count 0 popup js br
  • 深度学习——一些关于caffe的幼稚问题

    我试图了解 caffe 的基础知识 特别是与 python 一起使用 我的理解是模型定义 比如给定的神经网络架构 必须包含在 prototxt file 当您使用数据训练模型时 prototxt 您将权重 模型参数保存到 caffemode
  • 我如何判断我的 Spark 工作是否有进展?

    我有一个正在运行的 Spark 作业YARN它似乎只是挂起并且没有进行任何计算 这是当我这样做时纱线所说的yarn application status
  • 如何替换选区中的文本?

    我刚刚开始使用来自 emacs 的 Sublime Text 2 我选择了一个文本区域 在该区域内 我想将 0 的所有文本实例替换为 255 我该如何进行这种文本替换 This frustrated the heck out of me a
  • Android studio SDK 管理器丢失

    我正在关注这个离子教程 https ionicacademy com get started with ionic 在 Android Studio 中设置 SDK 来测试我的 ionic 项目时遇到了一些问题 我正在寻找 SDK 管理器
  • 在 Quickfix C++ 中重复组消息

    我们似乎无法使用 QuickFix 处理某些群组消息 我正在尝试使用 QuickFix C 建立与 ICE 交换的连接 我创建了一个自定义数据字典来处理 ICE 的非标准消息 要处理的第一条消息是 SecurityDefinition 该消