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

Earnings Announcement dates closing price for company

How can I use the Eikon python API to get the daily closing prices from -20 days to +20 days from historical earnings announcement dates (past 20 years) for a company?

eikoneikon-data-apipythonrefinitiv-dataplatform-eikonworkspaceworkspace-data-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.

Hello @eric.jian

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

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

Thanks,

AHS

1 Answer

· Write an Answer
Upvote
Accepted
18.2k 21 13 21

Hi @eric.jian

I think the Earning Announcement dates refer to Income Statement Announce Date.

Here is the sample code, I am using 0005.HK as example:

import pandas as pd
import datetime
import time

#get income statement announcement date and format the dates
df,e = ek.get_data('0005.HK',['TR.ISOriginalAnnouncementDate(SDate=0,EDate=-19,Period=FY0,Frq=FY)'])
df = df.rename(columns={"Income Statement Orig Announce Date":"AnnounceDate"})
del df["Instrument"]
df = df.drop_duplicates()
df = df[df.AnnounceDate != '']
df['AnnounceDate']= pd.to_datetime(df['AnnounceDate']) 
#print(df)

#get -20 to +20 priceclose on a given date
datesList = df.AnnounceDate.tolist()
for date in datesList:
    sdate = date - datetime.timedelta(days=20)
    edate = date + datetime.timedelta(days=20)
    data,e = ek.get_data('0005.HK',
                         ['TR.PriceClose.Date','TR.PriceClose'],
                         {'SDate':sdate.strftime('%Y-%m-%d'), 'EDate':edate.strftime('%Y-%m-%d'), 'Frq':'D'})
    print (data)
    time.sleep(3) #delay between each api call


And some result:


ahs.png (70.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.

Earnings announcements are once a quarter so there should be 4 dates each year. I ran the above code and got one income statement date for each year. Do I need to change the period/frequency arguments? What are the possible choices for those?

Hi @eric.jian

You can use Data Item Browser to check the support parameters.

In my example, I assumed that you are referring to Yearly report.

"Period=FY0,Frq=FY"

You can type in "DIB" on Eikon Search Bar and press enter to launch Data Item Browser.

Search for the field and see it supports parameter and value.

ahs.png (75.0 KiB)

Also does the formula that pulls the closing price skip over holidays? When i use date as

Timestamp('2019-02-13 00:00:00')

I see that 2019 -02-15 is displayed twice.

sdate = date - timedelta(days=20) # date - 20 days

edate = date + timedelta(days=20) # date + 20 days

# do for S&P index instead

data,e = ek.get_data('.SPX',

['TR.PriceClose.Date','TR.PriceClose'],

{'SDate':sdate.strftime('%Y-%m-%d'), 'EDate':edate.strftime('%Y-%m-%d'), 'Frq':'D'})








Please see row 16 and 17. Thank you

Hi @eric.jian

The 2nd row for 2019-02-15 belongs to 2019-02-18 date

This is my test.

I re-confirm the data point on Eikon Excel:

query to 2019-02-15, 2019-02-18 and 2019-02-19 accordingly in the picture.


I cannot clarify the content question.

Please submit your content question to Refinitiv Helpdesk at https://my.refinitiv.com/

ahs.png (52.5 KiB)
ahs2.png (39.6 KiB)

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.