QuickFIXJ设置消息中的SendingTime

时间:2014-12-24 15:13:45

标签: quickfixj

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

2 个答案:

答案 0 :(得分:1)

你想要什么......有点不对劲。引擎字段将由引擎使用,并用于应用程序数据(这是中继的SendingTime类型在第二条腿上)。您的内部FIX连接不应该破坏SendingTime字段。如果您正在诊断内部连接问题,则可能需要实际的SendingTime字段!

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

注意:您可能不希望使用OrigSendingTime(标记122)。该字段已经具有非常具体的用途。将您的新字段命名为其他字段。

答案 1 :(得分:0)

FIX Market Data messages (35=W, 35=X) usually have MDEntryDate (#272) and MDEntryTime (#273) fields to represent the timestamp of the market data price. If it is related to Quote/trade messages, you may have the TransactTime (#60) field.

It worth keep the SendingTime (#52) and MDEntryDate MDEntryTime/TransactTime separated, you can compare the difference between the price's timestamp and the counter party's infra structure timestamp (sending time). It would help to identify delay between the systems.

If the message you are handling does not have any Application DateTime field, you can pick one. which its value would be the SendingTime for the original FIX message you've received.

You can either select and use an existent field (http://www.onixs.biz/fix-dictionary/4.4/fields_by_name.html) or you can create your own user defined field.

Once you decided to create your own field, it is a good practice to check the oficial Global Technical Committee user defined fields list at https://www.fixtrading.org/standards/user-defined-fields/ and using the user defined fields range.

Sites