How to get data of this kind of RIC?

ric.png


Hi all,

I'm using python to get data from Reuter, normally, with RIC which have its chart like ".DXY", It's been got easily by using eikon.get_timeseries(). However, some other RIC like "SBVOMO2022" or "VNOMO=SBVN", I cannot get the data by using eikon.get_timeseries(). So how to get all these ind of data?

Note: I have tried with eikon.get_data(), but it just work if the field is available, and I need to search for exist field (just work with "VNOMO=SBVN" but not "SBVOMO2022")


Thank you for your help!

Best Answer

  • Jirapongse
    Answer ✓

    @nguyen.minhson1511

    SBVOMO2022 contains a list of page records.

    1660708180344.png

    First, we need to get the underlying RICs in SBVOMO202, and then subscribe to the ROW80_1 to ROW80_25 fields from those RICs.

    1660708281067.png

    The code looks like this:

    #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 ''
            #print(df)
            #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


    ricList = getUnderlying('SBVOMO2022')


    df, err = ek.get_data(
        instruments = ricList,
        fields = ['ROW80_1','ROW80_2','ROW80_3','ROW80_4','ROW80_5','ROW80_6','ROW80_7','ROW80_8','ROW80_9','ROW80_10',
             'ROW80_11','ROW80_12','ROW80_13','ROW80_14','ROW80_15','ROW80_16','ROW80_17','ROW80_18','ROW80_19','ROW80_20',
             'ROW80_21','ROW80_22','ROW80_23','ROW80_24','ROW80_25'])


    for index, row in df.iterrows():
        display(row.transpose())

    The output is:

    Instrument                                         SBVOMO2022-1
    ROW80_1 17:26 16AUG22 SBV OPEN MARKET AUCTION DATA ...
    ROW80_2 Open Market Auction Data ...
    ROW80_3 ...
    ROW80_4 Session Auction Transaction Term ...
    ROW80_5 No. Date Mode (Days) ...
    ROW80_6 ...
    ROW80_7 ======= ======== ================ ======= ...
    ROW80_8 195 16/08/22 Sell Outright 14 ...
    ROW80_9 194 16/08/22 Sell Outright 7 ...
    ROW80_10 193 16/08/22 Reverse Repo 7 ...
    ROW80_11 192 15/08/22 Sell Outright 7 ...
    ROW80_12 191 15/08/22 Reverse Repo 7 ...
    ROW80_13 190 12/08/22 Sell Outright 7 ...
    ROW80_14 189 12/08/22 Reverse Repo 7 ...
    ROW80_15 188 11/08/22 Reverse Repo 7 ...
    ROW80_16 187 10/08/22 Reverse Repo 7 ...
    ROW80_17 186 09/08/22 Reverse Repo 7 ...
    ROW80_18 185 08/08/22 Reverse Repo 7 ...
    ROW80_19 184 05/08/22 Reverse Repo 7 ...
    ROW80_20 183 04/08/22 Sell Outright 14 ...
    ROW80_21 182 04/08/22 Reverse Repo 7 ...
    ROW80_22 181 03/08/22 Reverse Repo 7 ...
    ROW80_23 180 02/08/22 Reverse Repo 7 ...
    ROW80_24 179 01/08/22 Reverse Repo 7 ...
    ROW80_25 178 29/07/22 Reverse Repo 7 ...
    Name: 0, dtype: object
    Instrument SBVOMO2022-2
    ROW80_1 17:26 16AUG22 SBV OPEN MARKET AUCTION DATA ...
    ROW80_2 177 28/07/22 Reverse Repo 7 ...
    ROW80_3 176 27/07/22 Reverse Repo 7 ...

    Otherwise, you need to contact the content support team directly via MyRefinitv and ask for other RICs that are not page records and can provide the same data.