修复内部序列号

时间:2013-08-12 16:42:57

标签: protocols finance 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和内部序列号之间的关系。

1 个答案:

答案 0 :(得分:22)

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

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

如果您有两个FIX会话,那么每个会话都会跟踪一对序列。

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

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

  

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

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

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

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

相关问题