0

我有一个连接到多个价格提供商的 FIX 应用程序。它将接收到的数据分发给我们的内部应用程序。当它将从价格提供者接收到的消息发送到目标应用程序时,它会修改 FIX 标头中的 SendingTime(52) 字段,这是不可接受的。内部应用程序想要获取原始的 SendingTime 值。如何对 QuickFIXJ 引擎说不要分配时间戳值?
谢谢

4

2 回答 2

1

你想要的……有点不对。标头字段将由引擎使用,并用于应用程序数据(这是中继的 SendingTime 类型在第二站中的内容)。您的内部 FIX 连接不应破坏 SendingTime 字段。如果您要诊断内部连接的问题,您可能需要实际的 SendingTime 字段!

您真正需要的是第二个 SendingTime 字段。您应该编辑内部 FIX 应用程序的 DD,以添加另一个字段来存储旧的 SendingTime 值。告诉您的内部目标应用程序引用该字段。

注意:您可能不想为此使用 OrigSendingTime(标签 122)。该领域已经有一个非常具体的用途。将您的新字段命名为其他名称。

于 2014-12-25T06:38:12.117 回答
0

FIX 市场数据消息 ( 35=W, 35=X) 通常具有MDEntryDate (#272)MDEntryTime (#273)字段来表示市场数据价格的时间戳。如果它与报价/交易消息相关,您可能拥有该TransactTime (#60)字段。

值得保留SendingTime (#52)MDEntryDate MDEntryTime/TransactTime分开,您可以比较价格的时间戳和交易对手的基础架构时间戳(发送时间)之间的差异。这将有助于识别系统之间的延迟。

如果您正在处理的消息没有任何 Application DateTime 字段,您可以选择一个。它的值将是您收到的原始 FIX 消息的 SendingTime。

您可以选择并使用现有字段 ( http://www.onixs.biz/fix-dictionary/4.4/fields_by_name.html ),也可以创建自己的用户定义字段。

一旦您决定创建自己的字段,最好查看https://www.fixtrading.org/standards/user-defined-fields/上的官方全球技术委员会用户定义字段列表并使用用户定义字段范围。

网站

于 2018-06-04T16:58:13.117 回答