How to get the Equity Options Prices with Eikon API

Is it possible with Eikon API to have Equity Options Prices?

Thanks,

Best Answer

Answers

  • Sure. E.g. ek.get_data(['AXAFA2700L8.p'],['CF_LAST','CF_BID','CF_ASK']) will get you the last trade, bid and ask prices, for €27 Dec 2018 call on AXA SA.
    It's not yet possible to retrieve streaming market data. This capability is coming next year. But you can already get snapshot market data.

  • Thank!

    But you have to know in advance the RIC (AXAFA2700L8.p).

    Is it not possible to have all the RICs options for one stock, example for Apple (AAPL):

    • AAPLD201809000.U
    • AAPLD201807500.U
    • AAPLD201808000.U
    • etc ..

    How to get the list? for 2018,2019,2020.

    All options are available on Eikon web but not on Eikon API Proxy.

  • Sure. Just use the chain RIC 0#AAPL*.U. For example ek.get_data('0#AAPL*.U',['CF_LAST','CF_BID','CF_ASK'])

  • Great !! thanks!

    However the returned list (ie 1326 lines) doen't return everything.

    For example, it's missing -> AAPLL011717000.U

    Do you know why ?

  • You rock ;-)

  • Another question, I see that for some RIC I do not get the list of options.

    For example :

    ek.get_data('0#FE*.U',['CF_LAST','CF_TIME'])

    But for the RIC 0#FE*.U no value was filled in for all the fields .. however, if I directly query the option (as below), it works because I have some data:

    ek.get_data('FEL151703000.U',['CF_LAST','CF_TIME'])

    How can I do to have the list of 0#FE*.U options?

  • @PilOop

    If you have a new question, please start a new thread.
    I'm afraid I'm not getting from your post what result you see when you call ek.get_data('0#FE*.U',['CF_LAST','CF_TIME']). Are you saying the result is an empty dataframe? This is how I would interpret "I do not get the list of options". But then you say "no value was filled in for all the fields", and I'm not sure how to interpret this. Please specify exactly what response you receive and what seems suspicious to you.
    On my end when I call ek.get_data('0#FE*.U',['CF_LAST','CF_TIME']) I do retrieve the list of 240 options RICs including FEL151703000.U. For FEL151703000.U the value of CF_LAST field is currently NaN (or empty) because there's been no trade for this option today yet. The value of CF_TIME field is 19:15:01. I see the same values for these fields returned by ek.get_data('FEL151703000.U',['CF_LAST','CF_TIME']).

  • On my end when I call ek.get_data('0#FE*.U',['CF_LAST','CF_TIME']) I do retrieve the list of 240 options RICs including FEL151703000.U.

    Thank, it was my question :) If I call ek.get_data('0#FE*.U',['CF_LAST','CF_TIME']), I don't get any RIC options.

    Instrument CF_LAST CF_TIME

    0#FE*.U NaN NaN

  • Interesting... I don't think I've seen this before. get_data method always returns a tuple with the dataframe and the error. Does the error have value on your end? Or is it None?
    Another thing to check is what happens if you type in 0#FE*.U in a Quote app in Eikon.

  • With Eikon Desktop I see all the options with "Option Watch", so everything works well with Eikon Desktop.

    Now, with the param debug=True:

    d, e = ek.get_data('0#FE*.U',['CF_LAST','CF_TIME'], debug=True)

    I get an error message: 'Access Denied' for the instrument '0#FE*.U'

    ('entity: ', 'DataGrid') ('payload: ', {'instruments': ['0#FE*.U'], 'fields': [{'name': 'CF_LAST'}, {'name': 'CF_TIME'}]}) Request: {"Entity": {"E": "DataGrid", "W": {"instruments": ["0#FE*.U"], "fields": [{"name": "CF_LAST"}, {"name": "CF_TIME"}]}}, "ID": "123"} HTTP Response: 200 - {"columnHeadersCount":1,"data":[["0#FE*.U",null,null]],"error":[{"code":251658243,"col":1,"message":"'Access Denied' for the instrument '0#FE*.U'","row":0},{"code":251658243,"col":2,"message":"'Access Denied' for the instrument '0#FE*.U'","row":0}],"headerOrientation":"horizontal","headers":[[{"displayName":"Instrument"},{"displayName":"CF_LAST","field":"CF_LAST"},{"displayName":"CF_TIME","field":"CF_TIME"}]],"rowHeadersCount":1,"totalColumnsCount":3,"totalRowsCount":2}

    How to solve this issue ?

  • You need to report this to Thomson Reuters Helpdesk for investigation. There must be something wrong with your Eikon account entitlements. Please call Thomson Reuters Helpdesk number in your country or use Contact Us capability in your Eikon application.

  • Thank Alex !! You right !

    For information. To access the data provided by OPRA (Options Price Reporting Authority), you have to pay a stock market fee.(USD 1.34/month).