Reuters market data C# library

We use C# library
RFA8_NET120_x64 to get Reuters market data.

We have noticed some unusual
behavior in the results:

If the stock is stale, some
random prices are published by the library.

We have compared this behavior
with the old C++ library and prices are set to zero as it should be.

We are wondering if this is a
known behavior, is it something which can be fixed or already fixed in a
newer versions?

Do we have a way to determine
that the stock is stale?

Thank you.

Best Answer

  • The below is on the assumption that your application uses the OMM interface when it connects upstream.

    Actually TR no longer uses the word "stale", but uses the word "suspect" instead. This covers a larger set of occurrences although it very often means stale. You can see a stream's state from the OMMState object. If OMMState.data is SUSPECT then it means 'stale'.

    "We have compared this behavior
    with the old C++ library and prices are set to zero as it should be."

    I wonder what you mean by "as it should be". The source may set the SUSPECT flag on a stream but it is fully allowed for that source to continue to update the stream. It is simply a message to the consumer that the values are currently not to be trusted. How the application should react to SUSPECT is up to the application to decide. It is a display application then it is typical to display the data on some red background. If it is a non-display application then the typical reaction is to ignore values that happen while the stream is in a SUSPECT state.

    The SUSPECT flag can be set by the source application itself. For example if the source application detects that it has lost some network connection to something upstream then it will (should!) set the flag on all streams that are currently being published. The SUSPECT flag may also be set by some intermediary component which detects a network failure, and ultimately the flag may actually be generated by the API library itself if the last stretch connectivity is broken.

    Ok, so normally you'll see the actual values not updating when a stream is in the SUSPECT state. But there's nothing to prevent them from updating. A source application that actually publishes zeros into market data fields when the stream is SUSPECT sounds very strange to me. That would be a sign of bad design and I doubt TR has done that on their own source. Zero (0) is a perfectly valid price for a financial instrument and should never be used to represent the absence of a price. Absence (or null) is done by so-called 'blank' value in OMM world. I'm guessing those zeros in your older application is because it is using the legacy Marketfeed interface which had a peculiar way to distinguish between null and nil.

    Hope this helps.

Answers