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
31 3 6 1

Getting data with Monthly frequency, using last trading day of the month.

Hello guys,

The question I have pretty much says it all, I'm requesting data using Python API and I noticed that when I use a frequency of 'M', I get monthly data BUT is end of month, regardless if it is weekend or trading day.

Is there a way to get monthly data using the last trading day of the month?

Thanks in advance.

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.

@22ca8780-99e4-42fa-9ca2-b27abad3c0c4
Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your 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
Upvotes
Accepted
39.4k 77 11 27

The API does not provide capability to adjust calendar end of month returned to business days. If you just want to adjust the dates to weekdays, you can easily do it using Timeseries / Date functionality available in pandas dataframe. This example adds a column to the dataframe containing dates adjusted to weekdays:

>>>  df = ek.get_timeseries('GBP=','CLOSE',interval='monthly',start_date='2015-01-01')
>>>  from pandas.tseries.offsets import *
>>>  df['Trading Day'] = df.index + Day(1) - BDay(1)
>>> df.head()
GBP=         CLOSE Trading Day
Date                          
2015-01-31  1.5066  2015-01-30
2015-02-28  1.5432  2015-02-27
2015-03-31  1.4816  2015-03-31
2015-04-30  1.5349  2015-04-30
2015-05-31  1.5288  2015-05-29
If you need the date adjustment to take into account market holidays and your focus is a single market, you can still reasonably do it with pandas. See this article for details and examples. If your universe of instruments spans multiple markets, this is where adjustment to business days gets complicated, as you need holidays calendars for all these markets and the mapping between instruments and calendars. Eikon includes a COM library named AdfinX Analytics, which among other things provides date manipulation functions including adjustment to business days based on a market calendar, which could be useful. But it also has its limitations particularly with regard to market calendars available and the mapping of instruments to calendars. This library can also only be used in 32-bit Python. Still, if you'd like to explore this, here's an article on using this COM library in Python.
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.

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.