question

Upvotes
Accepted
35 5 7 10

How to convert the different identifier codes like CUSIP, Sedol , ISIN to RIC and then sent to EMA Java

@Wasin Waeosri

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

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

Upvotes
Accepted
1.9k 6 9 16

Hello @Chaitanya.Vishnubhotla,

As I mentioned earlier in this thread that DataScope Select (DSS) can resolve other identifier types to RIC. This name resolving step has to be done before you use real-time APIs, so this topic might not relate to EMA API directly.

Anyway, I will demonstrate how to do name resolving by DSS Web GUI.

To start with it, I prefer using public data from Thailand Stock Exchange (SET) that I’m familiar with.

If you click the previous link, it will lead to a page which tries to describe that Thailand Stock Exchange uses ISIN as an identifier of each security.

Next, the tutorial in the other thread that I suggested previously; REST API Tutorial 11: Search by Instrument will show you how to search an instrument using various identifier types. It also mentions about DSS web GUI that I’m going to use it here.

To access DSS web GUI, you need to have your login credential. Please contact your account team for yours.

  • 1. Once I logged into it, click a DSS Home menu to use the GUI application.
  • 2. After that, click a DATA SCOPE SELECT €dropdown > Search. It’ll show a query form.
  • 3. Now, I copy one of ISIN Codes (i.e. I used a Government bond: CB17502A for this example) from the excel from Thailand Stock Exchange to this web form, select identifier type as ‘ISIN’ and click the Search button.
  • 4. Then, this website gave me three RICs that can be used to subscribed to real-time feed: Elektron.

From the previous steps, I have CB17502A=TS, THCB17502A=, and THCB17502A=RRPS. I’ll try to pass them to EMA; the real-time API.

consumer.registerClient(reqMsg.clear().serviceName("<<service name>>").name("CB17502A=TS"), appClient);

consumer.registerClient(reqMsg.clear().serviceName("<<service name>>").name("THCB17502A="), appClient);

consumer.registerClient(reqMsg.clear().serviceName("<<service name>>").name("THCB17502A=RRPS"), appClient);

Finally, I get three results from Elektron as follows:

RefreshMsg
    streamId="5"
    domain="MarketPrice Domain"
    solicited
    RefreshComplete
    state="Open / Ok / None / 'All is well'"
    itemGroup="00 0f"
    permissionData="03 08 43 31 65 c0"
    name="CB17502A=TS"
    nameType="1"
    serviceId="2115"
    serviceName="API_ELEKTRON_EPD_RSSL"
    Payload dataType="FieldList"
        FieldList FieldListNum="186" DictionaryId="1"
            FieldEntry fid="1" name="PROD_PERM" dataType="UInt" value="3165"
            FieldEntry fid="2" name="RDNDISPLAY" dataType="UInt" value="152"
            FieldEntry fid="3" name="DSPLY_NAME" dataType="Rmtes" value="CB17502A        "

...

RefreshMsg
    streamId="6"
    domain="MarketPrice Domain"
    solicited
    RefreshComplete
    state="Open / Ok / None / 'All is well'"
    itemGroup="00 0f"
    permissionData="03 08 43 24 94 c0"
    name="THCB17502A="
    nameType="1"
    serviceId="2115"
    serviceName="API_ELEKTRON_EPD_RSSL"
    Payload dataType="FieldList"
        FieldList FieldListNum="26" DictionaryId="1"
            FieldEntry fid="1" name="PROD_PERM" dataType="UInt" value="2494"
            FieldEntry fid="2" name="RDNDISPLAY" dataType="UInt" value="152"
            FieldEntry fid="3" name="DSPLY_NAME" dataType="Rmtes" value="CB17502A        "
...

RefreshMsg
    streamId="7"
    domain="MarketPrice Domain"
    solicited
    RefreshComplete
    state="Open / Ok / None / 'All is well'"
    itemGroup="00 04"
    permissionData="03 08 43 70 65 c0"
    name="THCB17502A=RRPS"
    nameType="1"
    serviceId="2115"
    serviceName="API_ELEKTRON_EPD_RSSL"
    Payload dataType="FieldList"
        FieldList FieldListNum="26" DictionaryId="1"
            FieldEntry fid="1" name="PROD_PERM" dataType="UInt" value="7065"
            FieldEntry fid="2" name="RDNDISPLAY" dataType="UInt" value="152"
            FieldEntry fid="3" name="DSPLY_NAME" dataType="Rmtes" value="BANK OF THAILAND"

...
Note: If you have a chance to try, please pick an ISIN Code that its issue date is not in the future because DSS may not be updated (in this case, some Bonds already have ISIN Codes, but they haven’t issued to the public yet).

Hope this helps.


icon clock
10 |1500

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

Upvotes
13k 32 12 18

For realtime data from Elektron; clients dealing in multiple security identifiers usually maintain a security master database with this mapping. You can look at DSS API to get some of this information.

icon clock
10 |1500

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

Click below to post an Idea Post Idea