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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
1 0 1 4

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

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

【質問】

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

1629916423543.png


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

eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikon
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.

Upvotes
Accepted
18k 21 12 20

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.3k 76 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 0 1 4

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.