For a deeper look into our Eikon Data API, look into:
Overview | Quickstart | Documentation | Downloads | Tutorials | Articles
I'm struggling with combining ① wiht ②. I'd greatly appreciate any suggestions you might have.
① I can get all listed companies in Japan with the below.
universe='SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/),IN(TR.ExchangeCountryCode,"JP"), IN(TR.InstrumentTypeCode,"ORD"), CURN=JPY)'
data, err = ek.get_data(instruments=universe, fields=['TR.CommonName'])
data.head()
② I can get the historical data of some companies' MarketCap like this.
data= ek.get_data(['2195.T','3639.T','3640.T','3641.T'], ['TR.CompanyMarketCap'],
{'SDate': '2019-8-31', 'EDate':'2015-9-30', 'Period':'FQ0','FRQ': 'M','Scale': 6})
print(data)
by @tnksnsk314
I would suggest you to split the call into 2 calls.
1. Get RIC list first
universe='SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/),IN(TR.ExchangeCountryCode,"JP"), IN(TR.InstrumentTypeCode,"ORD"), CURN=JPY)' df,e = ek.get_data(universe, ['TR.RIC']) ric_list = df['Instrument'].tolist() #split the list into a smaller list (to avoid hitting limit) ric_list1 = ric_list[0:1000] ric_list2 = ric_list[1000:2000] ric_list3 = ric_list[2000:3000] ric_list4 = ric_list[3000:]
2. Get MarketCap and MarketCap date from the RIC list
data1, err = ek.get_data(ric_list1,['TR.CompanyMarketCap.Date','TR.CompanyMarketCap'], {'SDate': '2015-9-30', 'EDate':'2019-8-31', 'Period':'FQ0','FRQ': 'M','Scale': 6}) data1.head()
Here is sample output:
I was able to get the data back from the whole list at once, but this is not suggested.
I understood. I will do it and show my client. Thank you! regards, Shinsuke
Hi @Shinsuke.Tanaka,
You didn't provide the details of what happens when you combine ① with ②. I'll assume you received output such as this (Note: I also echoed the err value to the screen):
I have not seen this error before but my suspicions are that you have exceeded a data limit. The data range you specified includes 48 different periods between each instrument. Limiting your date range will actually return a valid result.
For example:
I appreciate your suggetion. I'd like to have the result along with date like 2019/8/31, 2019/7/31. Which field should I put in the program?
You can apply the TR.CompanyMarketCap.Date field to your fields list. Refer to the DIB (Data Item Browser) within Eikon for a list of available fields/parameters.
Note: Because a new field is added, this will further reduce the date range as the new field contributes to the size of the data set. I would suggest you break down your universe if you want a specific date range as part of your result.
@Nick.Sincone.1
Thank you! I didn't notice the field in DIB. regards, Shinsuke