For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
40 5 5 11

How to retrieve pricing data for Mutual Funds with one ISIN code, traded at 4 different exchanges with 4 different prices?

I want to find a price for Mutual Fund with ISIN code IE00B1XNHC34 - iShares Global Clean Energy. It is traded in London, at the Swiss Exchange, at Borsa Italiana and at Deutsche Börse.

Using

ek.get_data("IE00B1XNHC34", ['BID', 'ASK'])

I get the price for the instrument traded in London. However, I need the price of this instrument traded at Borsa Italiana.

Please advice.

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpython
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
40 5 5 11

Hi @ jason.ramchandani - Thank you Jason.

Is there a fixed conversion to go from INRG.l to INRG.MI that you know of?

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.

Is there a fixed conversion to go from INRG.L to INRG.MI that you know of?

I found the answer myself. the INRG.L is denoted in GBP as is the (historical) data of "IE00B1XNHC34". When you convert he price in GDP to EUR the price equals the INRG.MI price (to divided by 100).

Consider it solved.

Upvotes
6.7k 8 6 7

Hi @vanderkroon - if you copy and paste the isin into the eikon search bar - you can get a list of RICs for that ISIN - which for the milan stock exchange is INRG.MI.

ek.get_data("INRG.MI", ['BID', 'ASK'])

I hope this can help.

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
40 5 5 11

Hi @ jason.ramchandani - Thank you Jason. Yes that works for the bid and ask. Unfortunately this approach does not produce results when retrieving historical data, e.g.:

ek.get_data("INRG.MI", ['TR.NETASSETVAL.date', 'TR.NETASSETVAL'],
                                        {'SDate': '-2Y', 'EDate': '0D'})

or

ek.get_data("IE00B1XNHC34.MI", ['TR.NETASSETVAL.date', 'TR.NETASSETVAL'],
                                        {'SDate': '-2Y', 'EDate': '0D'})

Results in an error message:

[{'code': 412, 'col': 1, 'message': 'Unable to resolve all requested identifiers.', 'row': 0}, {'code': 412, 'col': 2, 'message': 'Unable to resolve all requested identifiers.', 'row': 0}]

How should I go about retrieving historical data?


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
6.7k 8 6 7

@vanderkroon Hi so fundamental data pertaining to the fund will not change depending on the listing exchange. In this case you can use the main ISIN Code (which will use the primary RIC or main listing) - by the way IE00B1XNHC34.MI is not valid - an ISIN does not have .xx suffix only RICs have those.

df,err = ek.get_data("IE00B1XNHC34", ['TR.NETASSETVAL.date', 'TR.NETASSETVAL',{'SDate': '-2Y', 'EDate': '0D'})
df

To see what the primary identifier is you can use :

df,err = ek.get_data("IE00B1XNHC34", ['TR.PrimaryRIC'])
df

I hope this can help.




1606740778757.png (81.2 KiB)
1606741214366.png (9.2 KiB)
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
6.7k 8 6 7

@vanderkroon as this is a fund you could also use the symbology service to resolve the ISIN:

ek.get_symbology(['IE00B1XNHC34'],from_symbol_type='ISIN')

and then use the lipperID to call the fundamental information:

df,err = ek.get_data("65101708", ['TR.NETASSETVAL.date', 'TR.NETASSETVAL'],{'SDate': '-2Y', 'EDate': '0D'})
df

I hope this can help.


1606743912709.png (9.8 KiB)
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
6.7k 8 6 7

Once you have the RIC root INRG then you can try appropriate exchanges such as .MI - but I though about it and maybe the best way is to use the new Refinitiv Data Platform Search service. This will give you a list of all RICs associated to the ISIN. You need to install a new library pip install refinitiv.dataplatform and then :

import refinitiv.dataplatform as rdp
session = rdp.open_desktop_session('YOUR APP KEY HERE')
res = rdp.search('IE00B1XNHC34')
display(res)

Once you have this you can use the list returned to get the prices for each of these:

rics = res['RIC'][1:].astype(str).values.tolist() 
df, err = ek.get_data(rics, ['BID', 'ASK']) 
df

This seems more robust. I hope this can help.


1606745711638.png (146.0 KiB)
1606746174236.png (39.6 KiB)
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.

@vanderkroon

Adding to the post by @jason.ramchandani you can try the below syntax to find the RIC for specific ISIN that is traded on the exchange of your choice:

df = rdp.search(
    view = rdp.SearchViews.FundQuotes,
    query = 'IE00B1XNHC34',
    select = 'RIC,ExchangeName',
    filter = "ExchangeName eq 'Milan Stock Exchange' and AssetState ne 'DC'",
 )
df['RIC'][0]
'INRG.MI'
Click below to post an Idea Post Idea