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
1 1 2 5

Eikon_Data_APIを利用した東証業種別株価指数のデータ取得について

今回、pythonのEikon_Data_APIを使用したデータ取得について質問があるためメールを送らせていただきました。

【質問】

・1枚目画像の「赤丸で囲んである指数の<RICコード>を取得」するにはどのようにしたらよいでしょうか?

1629916423543.png


2枚目画像では取得することができませんでした。
1629916628135.png

eikoneikon-data-apirefinitiv-dataplatform-eikonworkspaceworkspace-data-api
1629916423543.png (74.6 KiB)
1629916628135.png (4.0 KiB)
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.

@tomoya.suzuki.lab

Thank you for your participation in the forum. Are any of the replies below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply that best answers your question. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,

-AHS

@tomoya.suzuki.lab

Hi,

Please be informed that a reply has been verified as correct in answering the question, and marked as such.

Thanks,

AHS

Upvotes
Accepted
18.2k 21 13 21

Hi @tomoya.suzuki.lab

Alternatively, you can expand the chain by your Python code using Eikon Data API.

ahs1.png


import pandas as pd
import time

#Define getUnderlying() function
def getUnderlying(baseRic):
    LONGNEXTLR = baseRic
    #For LONGLING1 to LONGLINK15 and LONGNEXTLR fields
    fields = ['LONGLINK{}'.format(x) for x in range(1, 15)]
    fields.append('LONGNEXTLR')

    all_underlying_rics = []

    #if LONGNEXTLR is not empty, try to retrieve the data fields
    while LONGNEXTLR!='':
        df,e = ek.get_data(LONGNEXTLR,fields)
        LONGNEXTLR = df.iloc[0]['LONGNEXTLR'] if pd.notnull(df.iloc[0]['LONGNEXTLR']) else ''
        
        #If LONGLINK<x> field is not null, append its value to all_underlying_rics list
        for x in range(1, 15):
            currentField = 'LONGLINK{}'.format(x)
            all_underlying_rics.append(df.iloc[0][currentField]) if pd.notnull(df.iloc[0][currentField]) else None
        #delay between each API call for 1 second
        time.sleep(1)
    return all_underlying_rics

You can the function with below example:

ricList = getUnderlying('.TSEK')
print(ricList)

ahs1.png (83.5 KiB)
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.

無事に取得できました!

ありがとうございます。

1630574896985.png

エラーの原因はまた改めて調べてみます

1630574896985.png (12.0 KiB)
Upvotes
39.4k 77 11 27

I'm afraid .TSEK is a chain that does not have typical "0#" chain prefix, hence Eikon Data APIs do not recognize it as a chain. The only way I can think of retrieving the constituents for this chain is by using StreamingChain class of the content layer of RDP Library. Here's a quick example.

import refinitiv.dataplatform as rdp
rdp.open_desktop_session('YOUR_APP_KEY')

def print_chain_constituents(streaming_chain, constituents):
    print(constituents)

streaming_chain = rdp.content.StreamingChain(
    name = '.TSEK', 
    on_complete = lambda streaming_chain, constituents : 
        print_chain_constituents(streaming_chain, constituents))
streaming_chain.open()

There are more examples of using StreamingChain class available in Codebook app in Eikon/Refinitiv Workspace under the __Examples__ folder -> 02 - Refinitiv Data Platform Library.

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
1 1 2 5

PyPI から refinitiv.dataplatform パッケージをインストールし,下記プログラムを実行しました.

このエラーを消すにはどうしたらよろしいでしょうか?

1630564359079.png


1630564359079.png (11.0 KiB)
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.

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.