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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
21 0 0 0

Return Only First Result From Query

I am attempting to get the "next" dividend date for a stock as of a certain date using the TR.EventStartDate field. For example, I am looking to search over the subsequent year to get the next date a dividend was expected as of 1990-01-01 by adding the following field to the query:

ek.TR_Field('TR.EventStartDate', params={'Sdate': '1990-01-01', 'Edate': '1991-01-01', 'EventType': 'EXDIV'})

When I've run this query in the past I've only had a single result returned (i.e. the first date), but now I'm starting to get multiple results.

How can I go about limiting the results of the query to only the first result?

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.

Upvotes
Accepted
21 0 0 0

Thanks for the response. In case anyone's interested, I actually found a more direct solution by simply bypassing the ek.TR_Field() function and just creating the field string manually, which allows you to wrap the whole field in a MIN() aggregator:

ek_fields.append(f'MIN(TR.EventStartDate(Sdate={Sdate}, Edate={Edate}, EventType=EXDIV))')
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.

Upvotes
39.2k 75 11 27

I don't believe there's a way to request only the next ex-dividend date as of a historical date. But you can easily grab the date closest to your historical reference date from the dataframe returned. You may also want to use Dividend History fields rather than Company Events fields such as TR.EventStartDate. Company events are returned for the company and may include ex dividend dates for multiple equity issues of the same company (common stock, depositary receipts etc.). The Dividend History fields return only the dividend history for the specific stock.

ric_list = ['IBM.N','T.N','AAPL.O']
df, err = ek.get_data(ric_list,'TR.DivExDate',
                     {'SDate':'1990-01-01', 'EDate':'1991-01-01'})
div_dates_df = pd.DataFrame(columns=['Ex div date'])
div_dates_df.index.name = 'RIC'
for ric in ric_list:
    div_dates_df.loc[ric,'Ex div date'] = df.loc[
        df['Instrument']==ric,'Dividend Ex Date'].min()
div_dates_df
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.

Click below to post an Idea Post Idea