Here's an example.
ek.get_data('SCREEN(U(IN(Equity(active,public,primary))/*UNV:Public*/), IN(TR.ExchangeMarketIdCode,"XHKG"))',['TR.CommonName'])
The exchange code XHKG used in the above expression is known as Market Identifier Code or MIC. The expression in the first argument of get_data method above uses Equity Screener available in Eikon. The Screener returns a max of 5K rows. If the exchange listing exceeds 5K instruments, then you need to break the request into multiple and introduce additional criteria such as for instance market cap. E.g. first retrieve all stocks listed on the exchange with market cap above X, then all stocks from the same exchange with market cap between X and Y, and then all stocks with market cap below Y.
To construct an Equity Screener expression follow the wizard behind Screener button in Thomson Reuters tab in Eikon Excel ribbon. Once you insert the Screener into Excel worksheet you can copy the screener expression from =TR Excel worksheet function and paste it into your code as the first argument for get_data method.
To learn more about using Equity Screener watch video tutorial titled "Create Data Retrieval Functions using Equity Screener" available from the main Eikon menu under Help - Tutorials and Training.
Hi @andy.ej
Its super simple - just use a chain RIC - you can preface a stock index RIC eg .HSI with a 0# and it will operate over all constituents in that index. You can also use these chain RICs in other API calls directly eg ek.get_timeseries or ek.get_news_headlines. If you want the Main Board Constituents for HKSE you can use the chain RIC 0#MBD.HK. See the code below:
RICS = ['0#.HSI'] fields = ['CF_NAME'] df,err = ek.get_data(RICS,fields) df.head()
Thanks to reply
But I want to get all stock list in some stock exchange, not member of index
As the example you show, it only gets 50 stocks from Hong Kong stock exchange, may be it have more than 1,000 stocks in Hong Kong stock exchange.