Retrieve current historic volatility surface

Hi,

I am wondering what the most elegant way to retrieve a full surface through the Python API is. For example LCOSURF3 contains a lot of RICs like LCO100N1MO=R for which historic as well as live values can be retrieved. Is there another way except pulling the data RIC by RIC?

Best Answer

  • Zhenya Kovalyov
    Answer ✓

    I can not see any elegant ways to achieve this, moreover, the api does not consider a chain of instruments without 0# as a series, so you will have to extract RICs first with something like this:

    import pandas as pd
    import eikon as tr

    tr.set_app_id('your_app_id')

    fields = ['LONGLINK' + str(i) for i in range(1, 14)] + ['LONGNEXTLR']

    def expand_chain(ric, fields, data):
    df, e = tr.get_data([ric], fields)
    data = data + list(df.iloc[0])[1:-1]
    nextlr = df['LONGNEXTLR'][0]


    if (pd.isnull(nextlr)):
    return data
    else:
    return expand_chain(nextlr, fields, data)

    rics = expand_chain('LCOSURF3', fields, [])[1:-1]

    after this you can get the time series for each RIC.

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.