question

Upvotes
Accepted
3 0 1 5

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.

Upvotes
Accepted
7.3k 18 2 8

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

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.