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?

Best Answer

  • 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:

    image

Answers