For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
37 1 4 11

Stream Closed - Expired RICs - How to identify

Hi,

In Elektron Connect (RFA library), we subscribe to chain RICs and then to all child RICs of the chain.

When RICs roll over and expire, I believe we get a "Stream Closed" event for the expired RICs.

We are trying to work out if there is there a way to identify when a RIC expires? Is there a response message or a response code that we can use to identify when this happens?


Thanks

Emir

elektronrefinitiv-realtimeelektron-sdkrrt
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Any updates please?

12 Answers

Upvotes
Accepted
23.5k 84 10 22

Hi @emir.subasic

The Elektron team have confirmed there is no specific Status text message used for Drop RICs

They have also expanded on my above comment that the application code should be able to determine if a RIC has been closed due to Expiry. Various fields such as EXPIR_DATE, MATUR_DATE, LSTTRDDATE (depending on the type of RIC) - may assist in determining the expiry date.

You can also ask on the existing Content ticket if they are able to advise which if any field best indicates the Expiry - for your particular set of RICs.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

The Status-Code property of the OmmState object received as part of the StatusMsg provides a reason for the particular stream state.

The list of StatusCodes can be found by referencing the RFA documentation for

enum rfa::common::RespStatus::StatusCode (C++) or com.reuters.rfa.omm.OMMState.Code (Java).

You would need to check with the Helpdesk to determine which Status Code value may be used by the Real-Time feed to indicate an expired RIC due to 'rollover'.




icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
37 1 4 11

Hi,

Thanks for the update although I am a bit confused why I need to raise a helpdesk issue for this question. This is a pure dev question. If I raise this on helpdesk I am sure they will redirect me to the developer portal.

Below is the Enum I found in the code. None of them seem to be what I am after.

Please advise.

Thanks


public sealed class StatusCodeEnum

{

public const byte None = 0;

public const byte DacsMaxLoginsReached = 31;

public const byte UserUnknownToPermSys = 30;

public const byte DacsDown = 29;

public const byte Error = 28;

public const byte ExceededMaxMountsPerUser = 27;

public const byte NoBatchViewSupportInReq = 26;

public const byte UnableToRequestAsBatch = 23;

public const byte FullViewProvided = 22;

public const byte InvalidView = 21;

public const byte UnsupportedViewType = 20;

public const byte NonUpdatingItem = 19;

public const byte NotOpen = 16;

public const byte SourceUnknown = 15;

public const byte AlreadyOpen = 14;

public const byte TooManyItems = 13;

public const byte NoResources = 12;

public const byte GapDetected = 11;

public const byte FailoverCompleted = 10;

public const byte FailoverStarted = 9;

public const byte TickByTickResumed = 8;

public const byte JustInTimeFilteringStarted = 7;

public const byte Preempted = 6;

public const byte UsageError = 5;

public const byte InvalidArgument = 4;

public const byte NotAuthorized = 3;

public const byte Timeout = 2;

public const byte NotFound = 1;

public const byte DacsUserAccessToAppDenied = 32;

public const byte GapFill = 34;

}

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

The reason for asking the Content Helpdesk is that they would best be able to advise if a particular status code is used when a RIC expires due to rollover.

Our streaming APIs such as RFA, RT-SDK are content-neutral - they just pass on the data they receive from the server/data source - they don't implement any business or content related logic.

I looked at the above list and could not see any obvious choice for a rollover expiration and therefore recommended the Content helpdesk.

I have raised a content ticket on your behalf and someone should contact you soon.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
37 1 4 11

Hi,

Here is the response from helpdesk. As you can see I am being diverted back to this portal.

Thanks


Hi Emir,

Thanks for contacting Refinitiv Helpdesk, I am Kaye and I received your query. When you say " When RICs roll over and expire" is this referring to a specific Asset/Instrument Class that rolls over and expires? For example, an Expired Future RIC.

Once a future has expired, the focus generally moves to the next active contract. When using a rolling contract RIC such as LCOc1, the contract will roll automatically. To go back and look at the historical data, you must follow a specific RIC structure.

Example:
S: RIC Root Code for Soybeans
U: Month Code (SEP)
4: Last digit of the contract year
^: Carat symbol
1: Decade of the expiry of the contract

SU4^1 - Expired Futures RIC - September 2014 contract (searchable in the main search box, chart, and Excel only).

Note: RIC construction rules for expired Futures can be found on Quote page RULES9.

On the other hand, if this has something to do with how to identify when a RIC expires within your API environment, as we have limited knowledge on developing APIs or on any programming language, I need to refer you back to Developers Community Portal: https://developers.refinitiv.com/en

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

I have contacted Kaye and advised her to escalate the ticket to the Elektron Feed team (as I originally advised when I raised the ticket).


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
37 1 4 11

Hi,

Any updates on this as I am being bounced back to raise a dev portal question by the helpdesk?



Hi Emir,

The Elektron development team advised you can reach out to the developer's community directly to see if any such message is possible. Here is the link:

https://developers.refinitiv.com/en

Let me know if need any further assistance.

Regards,
Veena Tulasi
Trade Workflow Specialist
Preferred Pronouns She/Her/Hers
Refinitiv
An LSEG Business lseg.com

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

I have reached out to Veena to explain the situation.

Having thought about this last night(!), given the nature of the query and given the list of status codes above, it may well be that there is no conclusive way of identifying if a RIC is closed due to expiry using Status Code. Even if a particular Status Code is used, it may not be exclusive to expired RICs.

I suspect the only solution could be for the application developer to implement some business logic to determine when a RIC expires. You are subscribed to an instrument which by its very nature is expected to expire at a given date.

Therefore, when an instrument stream is closed, your application could confirm if it was expected to expire at that time or not.

I will also reach out to the Elektron team to see if I can get any further advice from them.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
37 1 4 11

Hi,


Thanks for the update. If there is no exclusive StatusCode, would you mind checking if there is anything in the Status Message text that we could potentially use?

Thanks

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

The rule around the Status text has always been that it should not be used for determining program flow/action - as it is subject to change. However, I will ask the Elektron team if there is anything unique about the text for an expired RIC.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
23.5k 84 10 22

Hi @emir.subasic

The Elektron team have advised, there is no specific StatusCode used for an expired RIC.

For example, when an expired CME future was dropped this weekend, the status code was None (0).

I have asked if a particular Status Text was used - however, please note my earlier comment.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
37 1 4 11

Thanks for checking this and confirming.

Is it possible to request such a feature to be added in the future? I think it would be very useful if there was status code for this.

Cheers

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.