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
3 0 0 4

Proper queries for options on futures using Python and Eikon API

Good afternoon,

I try to request Eikon API from python to find EUA options open interest relative to strike prices.

I want to get open interest for all strike prices of a contract, for example Dec24 (CFI2Z4).

Please find below my code. I think the code i am using for options is wrong : 0#GCFI2Z*.EX

Thank you for your support,

_____________________________________________________________________

import eikon as ek

ek.set_app_key('My_key')

fields = [ek.TR_Field('TR.RIC'), ek.TR_Field('STRIKE_PRC'), ek.TR_Field('TR.PUTCALLIND'), ek.TR_Field('TR.OPENINTEREST')]

EUA_options = ek.get_data("0#GCFI2Z*.EX", fields=fields)

print(EUA_options)

_____________________________________________________________________


#technology#contentpython apiricsrequest
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.

Hello @Amine.Sabri

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

Upvotes
Accepted
5.1k 16 2 7

Hi @Amine.Sabri ,


Is the RIC chain 0#GCFI2Z*.EX correct? I don't seem to find it in LSEG Workspace. Nevertheless I have replicated the process for 0#CL+. You can then replace this with another ric:

First we need to expand the chain using the following code:

options, err = ek.get_data("0#CL+", fields = 'X_RIC_NAME')
print(list(options['Instrument']))
['0#CLF24+', '0#CLG24+', '0#CLH24+', '0#CLJ24+', '0#CLK24+', '0#CLM24+', '0#CLN24+', '0#CLQ24+', '0#CLU24+', '0#CLV24+', '0#CLX24+', '0#CLZ24+', '0#CLF25+', '0#CLG25+', '0#CLH25+', '0#CLJ25+', '0#CLK25+', '0#CLM25+', '0#CLN25+', '0#CLQ25+', '0#CLU25+', '0#CLV25+', '0#CLX25+', '0#CLZ25+', '0#CLF26+', '0#CLG26+', '0#CLH26+', '0#CLJ26+', '0#CLK26+', '0#CLM26+', '0#CLN26+', '0#CLQ26+', '0#CLU26+', '0#CLV26+', '0#CLX26+', '0#CLZ26+', '0#CLF27+', '0#CLG27+', '0#CLH27+', '0#CLJ27+', '0#CLK27+', '0#CLM27+', '0#CLN27+', '0#CLQ27+', '0#CLU27+', '0#CLV27+', '0#CLX27+', '0#CLZ27+', '0#CLF28+', '0#CLM28+', '0#CLZ28+', '0#CLM29+', '0#CLZ29+', '0#CLM30+', '0#CLZ30+', '0#CLM31+', '0#CLZ31+', '0#CLM32+', '0#CLZ32+', '0#CLM33+', '0#CLZ33+', '0#CLM34+', '0#CLZ34+']


This will return the monthly contract chains. Then you can expand those further to get contracts with specific strikes and get prices on those. E.g for '0#CLFG24+':

options_G, err = ek.get_data("0#CLG24+", fields = 'X_RIC_NAME
options_G


screenshot-2023-12-13-at-175107.pngFinally we can request the fields you are after:

rics = options_G['Instrument'].to_list()
df, err = ek.get_data(rics, fields = ['STRIKE_PRC', 'PUTCALLIND', 'TR.OPENINTEREST'])
df

screenshot-2023-12-13-at-174542.png

If you need help with identifying correct chain RICs you can post a content question via Helpdesk.

Hope this helps.


Best regards,

Haykaz


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
3 0 0 4

Thank you, that answer is relevant

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.