修复内部序列号

cap*_*ser 11 finance protocols fix-protocol

我在卖方客户和进行货币兑换的交易所之间有一个流程.有两个FIX适配器 - 一个接收来自卖方的消息并将消息提供给流程.另一个FIX引擎从进程中获取消息并将它们以FIX方式发送给交换.

每条FIX消息都有一个由标签34代替的唯一序列号.然而,似乎这些FIX引擎中的每一个都有一个INCOMING SEQUENCE号码(FIX引擎对于对方来说是期望的)和一个OUTGOING SEQUENCE NUMBER(FIX引擎发送给哪一个)反对党).

这些内部序列号是否与标签34无关?

在此配置中,Sell side FIX ENGINE的内部序列号在登录时重置为1,1.FIX ENGINE到交换的内部序列号不会重置为1,1.

我猜这是因为在交易所可能会有GTC订单,两个引擎可能会在成功登录后"沉没"这些静止订单.

但是我不理解标签34和内部序列号之间的关系.

Gra*_*ier 23

任何FIX应用程序必须为每个会话维护两组序列号:传入和传出.这些序列号彼此独立.

  • 每次应用程序发送消息时,它都会递增传出序列号并将其设置在标记34中.
  • 每次应用程序收到消息时,它都会增加预期的传入号码,并确保传入消息的标记34与之匹配.

如果您有两个FIX会话,则每个会话都会跟踪一对序列.

通常,提供者希望在断开连接之间维护序列号.这对于订单管理连接尤为重要,例如,如果由于某种原因连接断开,您肯定想知道您错过的任何订单填写.

这对于市场数据馈送来说并不那么重要.如果您的连接中断了一分钟,那么您在关注时并不关心价格是多少 - 您现在只需知道最新价格.因此,序列在登录时重置.

但是我不理解标签34和内部序列号之间的关系.

这个问题听起来特定于引擎.您尚未指定正在使用的引擎.

但这应该不重要.您发送的每条消息都应增加34; 内部存储用于此目的.您收到的每封邮件应该比最后一封邮件高34; 再次,维护内部存储,以便应用程序可以跟踪这一点.

如果您使用的是任何QuickFIX引擎,那么您不必担心这一点.QF为您处理所有这些.(如果你认为你需要弄乱QuickFIX中的序列号,你可能错了.这是一个常见的新手问题.只需正确设置你的配置,引擎将完成其余的工作.)