The Eikon API 'get_timeseries' function shows unexpected behavior. The 'start_date' is not respected in the following code:
market = [ '.BADI','FXSYSAL=NPX','ENOFBLQH8','ENOFBLYZ8','ENOFBLYZ9','F1BYF8','F1BYF9','F1PQV7','F1PYF8','F1PYF9','ATWQU7','ATWQZ7','ATWYZ8','ATWYZ9','CFI2Z7','CFI2H8','CFI2Z8','CFI2Z9','LCOc1','LCOc2','LCOc3','.OSEBX','.GDAXI','.SSEC','.AXJO','.FTSEE','EUR=X','NOK=X','GBP=X','/.DXY','/.BADI','SKMELYH8','SKMELYH9',] df = eikon.get_timeseries(market, fields=["Close"], start_date = "2016-03-01", interval="daily") df
Furthermore, there is no error message when hitting the 3,000 output limit. So the output (of 7 instruments * 472 rows = 3302) results looks like this:
While the output of 5 instruments * 472 rows = 2460 looks like this:
Can we please get error message instead of populating the output with NaNs?
Thanks for your help!
The problem as I see it is the shared 3K rows limit, which is the reason for both the timeseries returned not stretching back to 01-Mar-2016 when you send 33 RICs in a single request, and for some rows for some instruments being returned as NaN when 3K divided by the number of RICs does not result in an integer.
The 3K limit issue has already been raised here and reported to development and product management:
I guess that the date is ignored, because you are hitting the limit. Here is a handy function to check if your are okay:
from datetime import date from numpy import busday_count def number_of_points(instruments, start_date, end_date=0): days = busday_count(start_date, date.today() if end_date==0 else end_date) return len(instruments)*days
Based on your request, the number of points is 11583 instead of the 3000 limit, as the number of instruments on your market list is 33.
Could you help explain the means for 3000 points limitation.
Is it means that we can't get data more than 3000 at one time ?
If store data to excel, it's limit to get 3000 cell data at a time?