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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
19 1 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-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpython
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

Upvote
Accepted
18k 21 12 20

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 5.0 MiB each and 10.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)
Click below to post an Idea Post Idea