For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
1 0 1 3

How do I access alternative close prices via python API

Help!

Is it possible to access alternative close prices from the python API? For example BRTDTDMc1 has 2 close prices. ASIA_CLOSE, EU_CLOSE, US_CLOSE, I want to access the ASIA close price as I am trying to find a common timestamp for the below list of prices.

Reuters Code' : ['DUBSGSWMc2', 'MRBN1MMASc1', 'OQc1', 'LCO1MMASc1', 'BRTDTDMc2'

The other alternative close I want to acces is the ALT_SETTLE on the OQc1 curve.

My code is here: I took snip and pasted raw code for any testing.


1630596574871.png

#Import Curve data


import pandas as pd

import numpy as np

import datetime as dt

import eikon as ek

from pandas.tseries.offsets import BDay



today = dt.date.today()

reportDate = (today - BDay(1)).strftime('%Y-%m-%d')

print(reportDate)


curves = pd.DataFrame({'Simplified Underlyer' : ['Dubai', 'Murban', 'Oman', 'Ice_Brent' , 'Dated_Brent'],

'Reuters Code' : ['DUBSGSWMc2', 'MRBN1MMASc1', 'OQc1', 'LCO1MMASc1', 'BRTDTDMc2']})


curves.set_index('Simplified Underlyer')


curveList = curves['Reuters Code'].tolist()


curveData = ek.get_timeseries(curveList, ['CLOSE'],start_date="2021-01-01",end_date= reportDate)

curveData1 = ek.get_timeseries(curveList, ['ASIA_CLOSE'],start_date="2021-01-01",end_date= reportDate)

curveData2 = ek.get_timeseries(curveList, ['ALT_SETTLE'],start_date="2021-01-01",end_date= reportDate)


prices = curveData.dropna()

returns = curveData.pct_change()

returns = returns.dropna()

returnsCov = returns.cov()

volatility = returns.std()


latestPrices = prices.loc[reportDate]

latestPrices

print(curveData1)

print(curveData2)


eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpythoncommodities
1630596574871.png (70.5 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
Accepted
4.3k 2 4 5

Hi @joe.wright ,

ek.get_timeseries provides only a limited list of fields (TIMESTAMP, VALUE, VOLUME, HIGH, LOW, OPEN, CLOSE & COUNT).

In your case, following ek.get_data() calls could return expected values:

curveData, err = ek.get_data(
    curveList,
    ['TR.CLOSEPRICE.date', 'TR.CLOSEPRICE'],
    parameters={'SDate': "2021-01-01", "EDate": reportDate})

curveData1, err = ek.get_data(
    curveList,
    ['TR.ASIACLOSINGTRADEPRICE.date', 'TR.ASIACLOSINGTRADEPRICE'],
    parameters={'SDate': "2021-01-01", 'EDate': reportDate})

curveData2, err = ek.get_data(
    curveList,
    ['TR.SETTLEMENTPRICE.date', 'TR.SETTLEMENTPRICE'],
    parameters={'SDate': "2021-01-01", 'EDate': reportDate


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea