Search code examples
quickfixquickfixn

INET Nordic FIX protocols extending to nanosecond granularity timestamps


All INET Nordic FIX protocols will be enhanced by extending to nanosecond granularity timestamps on 16.oktober 2015 (see notification and section 3.1.1 in the spec).

The timestamps will look like this: 20150924-10:35:20.840117690

quickfix currently rejects messages that contain fields with this new format with the error: Incorrect data format for value

Are there any plans to support this new format? Or maybe some workaround?


Solution

  • You can first try modifying your data dictionary. For example if you are using fix42.xml that comes with QuickFIX, you can change the affected timestamp fields from type='UTCTIMESTAMP' to type='STRING'.

    If that isn't enough, you should instead write a patch against QuickFIX in C++, which should be somewhat straightforward once you know where to patch it, which I think is UtcTimeStampConvertor, around here: https://github.com/quickfix/quickfix/blob/master/src/C%2B%2B/FieldConvertors.h#L564

    I think you need to add a case 27: above case 21: near the top, because your format has six extra digits. It looks like the rest of the function doesn't care about the total field length.

    Of course if you want to actually inspect the sub-millisecond precision part of these timestamps, you'll need to do more.