Upgrade from Eikon -> Workspace. Learn about programming differences.

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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
5 3 2 4

Can't get constituents of Russell index

I am trying to get constituents of Russell 1000 and Russell 2000 index but the following codes did not work:

ek.get_data("0#.RUT","TR.RIC")

ek.get_data("0#.RUI","TR.RIC")

I've tried "RUI-E" and "RUT-E". They did not work either.

This function works for some other index, however, for example:

ek.get_data("0#.STOXX","TR.RIC").

What is the correct RIC to use or what other functions can I use? Thanks in advance.

eikoneikon-data-apipythonrefinitiv-dataplatform-eikonworkspaceworkspace-data-apiindexconstituents
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.

The case 06539403 is now closed:

The case resolution is

The client does not have entitlement for .RUT. Suggest the client contact Account Manager to add the entitlement.

Hello @wasim

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?

If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.

Thanks,

AHS

1 Answer

· Write an Answer
Upvotes
Accepted
39.4k 77 11 27

You can use Equity Screener to retrieve index constituents. Follow the Screener wizard, which provides GUI to aid you in constructing the screener query in Excel, which you can then copy & paste into your code. You may want to watch a 3 minute tutorial video titled "Create Data Retrieval Functions using the Equity Screener in Excel", which you can find by copying and pasting this title into Eikon command/search bar. Here's the expression you can use to retrieve the constituents of Russell 2000:

ek.get_data('SCREEN(U(IN(indices(4387873/*Russell 2000 */))/*UNV:Public*/))',['TR.CommonName'])
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.

Thanks for your reply! I just copied and pasted your code, but got an error message: KeyError: 'headers', which comes from "get_data_frame" function.

Could you include the full trace printed? And could you try the following worksheet function in Excel? Does it retrieve the result or return some error?
=TR("SCREEN(U(IN(indices(4387873/*Russell 2000 */))/*UNV:Public*/))","TR.CommonName","RH:In CH:Fd")

I copied and pasted the function in Excel, and it returned as 'NULL'

The error in python is as follows:

File "<ipython-input-96-bb2785d21964>", line 1, in <module> rics_temp, err = ek.get_data('SCREEN(U(IN(indices(4387873/*Russell 2000 */))/*UNV:Public*/))',['TR.CommonName']

File "C:\...\lib\site-packages\eikon\data_grid.py", line 146, in get_data return get_data_frame(result, field_name)

File "C:\...\lib\site-packages\eikon\data_grid.py", line 176, in get_data_frame headers = [header['displayName'] for header in data_dict['headers'][0]]

KeyError: 'headers'

Show more comments
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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