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
11 1 2 3

Historical 1 minute interval data between 15:30 – 17:30 CET for the last 90 days

Hi Team,


Can you advise what script can we use in Python Eikon API to get the Historical 1 minute interval data between 15:30 – 17:30 CET for the last 90 days.


Sample RICs

ADSGn.DE

AIRG.DE

ALVG.DE

BASFn.DE

BMWG.DE

eikon-data-api#productpython api
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.

@kenley.macandog123

Hi,

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the most appropriate reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,
AHS

Upvote
Accepted
14.2k 30 5 10

Hi @dianne.palmario and @kenley.macandog123,

Here's the code

import eikon as ek
import pandas as pd
import datetime

ek.set_app_key('####YOUR_APP_KEY####')

rics = ['ADSGn.DE','AIRG.DE','ALVG.DE','BASFn.DE','BMWG.DE']
df_list = []
today = datetime.datetime.today()
start_date = today - datetime.timedelta(90)

# looping to get the data of 30 days in each call
while start_date < today: 
    end_date = start_date + datetime.timedelta(days=30) 
    df = ek.get_timeseries(rics, start_date=start_date, end_date=end_date,interval='minute') 
    df_list.append(df) 
    start_date = end_date + datetime.timedelta(days=1) 

result = pd.concat(df_list)
#display(result)

# filter the time interval
df_duration = result.iloc[(result.index.time >= datetime.time(14, 30))&(result.index.time <= datetime.time(16, 30))]
display(df_duration)

1671531916209.png

Hope this helps and please let me know in case you have any further questions.


1671531916209.png (115.9 KiB)
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.

Hi Raksina,


thx a lot for the script, a nice way to solve the problem.


I appreciate it a lot.


Regards,


Silvio



Upvotes
14.2k 30 5 10

Hi @kenley.macandog123 ,

Is this what you're looking for?

First, to get the Historical 1-minute interval data in the last 90 days. However, as there's a limit of an API call in Eikon, so please check this Eikon Data API Usage and Limits Guideline and adjust the start_date, and end_date to not exceed the Eikon Limits.

import eikon as ek
import datetime
from datetime import time
ek.set_app_key('####YOUR_APP_KEY####')

df = ek.get_timeseries(['ADSGn.DE','AIRG.DE','ALVG.DE','BASFn.DE','BMWG.DE'], 
                       start_date=datetime.timedelta(-90), 
                       end_date=datetime.timedelta(0),
                       interval='minute')
display(df)

1671468046010.png

Then after you get the data of the last 90 days, you can filter only the time you're interested, to confirm the timezone of data returned, you may check with the Content team by raising the ticket via MyRefinitiv.

Hope this helps and please let me know in case you have any further questions.


1671468046010.png (52.8 KiB)
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
14.2k 30 5 10

Hi @kenley.macandog123 and @dianne.palmario ,

as mentioned in this thread that

get_timeseries method of Eikon Data APIs library always returns timestamps in GMT.

You may find another way to do the time conversion, in this case, I'm using the time range you used

df1 = df.iloc[(df.index.time >= datetime.time(14, 30))&(df.index.time <= datetime.time(16, 30))]
display(df1)

However, as the data returned is less than latest 90 days due to the Eikon API call limit, you need to call a get_timeseries function in loops with the parts of latest 90 days and then merge the data together.

1671506924431.png

Hope this helps and please let me know in case you have any further questions.



1671506924431.png (61.6 KiB)
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
20 0 1 6

@raksina.samasiri


Can you please provide a script that calls a get_timeseries function in loops with the parts of latest 90 days? Like how the script would look like so that we can see more than the latest 90 days limitation?

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.