Get historical daily prices, 5-15 minutes before close

I would like to obtain daily historical prices, but n minutes before market close (where n is a user-definedd parameter). Would that be possible?

It would be greatly appreciated if I could obtain something similar for prices after market open.

Thank you!

Best Answer

  • Gurpreet
    Gurpreet admin
    Answer ✓

    I don't think Eikon provides this data. You can get historical timeseries for the official Close price.

    Other products like Datascope Tick History might be better suited for your query. There, you will be able to download all market activity and pick the datapoint at the time of interest.


Answers

  • zoya faberov
    zoya faberov ✭✭✭✭✭

    I totally agree with Gurpreet that Tick History product and REST API are better suited for this requirement.

    If you only have Eikon and are limited to using Eikon Data API, you may be able to get away with the following hardly graceful approach:

    ricList = ['IBM.N','T.N','B.N']  
    ek.get_timeseries(ricList, start_date = "2020-01-27T16:15:00",              
    end_date = "2020-01-27T16:25:00", interval="tick",count=1)

    instruments on the list IBM.N, T.N and B.N are NYSE, with market close at 4:30 = 16:30, so we literally ask for a single data point 5-15 min prior to market close.

    image

    And in order to get it as daily, you may loop through the dates:

    from datetime import datetime
    from dateutil.rrule import rrule, DAILY

    l = list(rrule(DAILY, dtstart=datetime(2020, 1, 2), until=datetime(2020,1,27)))

    ricList = ['IBM.N','T.N','B.N']

    for i in l: 
        point_start_date = i.strftime("%Y/%m/%d") + "T16:15:00"
        point_end_date = i.strftime("%Y/%m/%d") + "T16:25:00"
        print(point_start_date, '-',point_end_date)
        try : 
            dat = ek.get_timeseries(ricList, start_date = point_start_date,
                end_date = point_end_date, interval="tick",count=1)
            print(dat)
        except :
            print("Not trading ")