文章

如何使用Refinitiv Data Library的Eikon Advance Search查找数据和功能

作者:

Raksina Samasiri
Developer Advocate Developer Advocate

您的工作流程中是否曾需要查找符合特定条件的数据内容?

例如,

查找功夫债或中资美元债券,即由中国金融机构和企业发行的以美元计价的债券,其搜索条件可表示如下:

        1 )  母公司位于中国内地或香港
        2 ) 主要货币为美元
        3 ) 发行国不包括中国

本文将向您展示如何执行以下步骤:

        1 )  使用Eikon/Workspace Desktop的“Advanced Search”App来定义搜索条件

        2 )  将以上搜索产生的查询语句导出并生成Python 代码,这段Python代码将调用RDP 库的搜索函数

        3 )  将导出的查询转换为适用于 RD Python库的Python 代码。与RDP 库相比,发布后的RD Python库在error/session的处理方面有很大的改进。

关于原 RDP 库的立场声明,请参阅概述页面

 

高级搜索应用程序(Advanced Search Application)

政府债和企业债高级搜索应用程序(Advanced Search - Government and Corporate Bonds App) 是Eikon Desktop/ Refinitiv Workspace App里的一个应用程序。通过这个应用程序能找到符合条件的数据。下表列出了可用的筛选条件。

Field字段 Note/Example of available value注释/可选值
Universe数据集
  • Government and Corporate Bonds 政府债和企业债
  • Equities 股票
  • Funds & ETPs 基金和交易所交易产品
  • Indices 指数
  • etc. 等等
Search搜索
  • Government Bonds 政府债
  • Corporate Bonds 企业债
  • Certificate of Deposit 存款凭证
  • Or any other Search criteria saved by the user 或用户保存的其他搜索条件
Filters筛选条件

To put the criteria of 基于以下字段进行筛选过滤

  • Issuer 发行人
  • Market Code 市场代码
  • Coupon 票息率
  • etc 等等

应用搜索条件后,可以保存它们以供将来使用。添加/删除搜索结果的列,然后将结果导出为 CSV 文件。或者将搜索条件导出生成可使用RDP 库的代码,我们将在本文中将其导出并转换为调用RD 库的 Python 代码。

 

执行以下步骤,来启动该应用程序:

          1)  在Eikon/Workspace搜索栏里输入“Advanced Search”或“AS”,然后按回车键

“Advanced Search”高级搜索应用程序将启动,以下是该应用程序的屏幕截图

2)  在该App上应用过滤器。在本文中,我将搜索功夫债或中资美元债,这是中国金融机构和公司发行的以美元计价的债券,搜索条件如下

        1. 母公司位于中国内地或香港
       2. 主要货币为美元
       3. 发行国不包括中国

          3 ) 现在,我们得到的搜索结果是满足筛选条件的功夫债,这些结果可以导出到CSV文件,也可以导出查询语句,这也是本文的重点。

为了导出查询语句,请单击右上角的下拉列表(下面屏幕截图中的数字 4),然后选择“Export query(导出查询)”

以下屏幕截图显示的是使用过滤器后的Advanced Search app界面。

“Export query(导出查询)”窗口弹出后,单击该窗口上的“CODEBOOK”选项卡,将看到查询语句对应的Python 代码,然后点击“Copy(复制)”按键。

以下是我们得到的代码,

        - select参数里的属性值根据数据分析的要求做了相应的调整

        - 为了能得到所有的搜索结果,将top参数的数值更新为10000

    	
            

rdp.search(

    view = rdp.SearchViews.GovCorpInstruments,

    top = 10000,

    filter = "((DbType eq 'GOVT' or DbType eq 'CORP' or DbType eq 'AGNC' or DbType eq 'OMUN' or DbType eq 'OTHR') and IsActive eq true and (RCSParentDomicileGenealogy in ('G:53' 'G:3H') and RCSCurrencyLeaf eq 'US Dollar' and RCSCountryGenealogy ne 'M:DQ\G:B6'))",

    select = "RIC,RCSTRBC2012Leaf,IssueDate,EOMAmountOutstanding,PricingRedemDate,IssuerLegalName,PricingClosingYield, CurrentYield, FaceIssuedTotal,EOMPriceChange,RCSBondGradeLeaf,EOMPriceReturn"

)

        4 )  由于我们希望使用Refinitiv Data Library(RD 库)而不是用RDP库,因此我们需要稍微调整一下代码,使导出的Python代码能正常地使用RD 库。修改后的代码如下所示。

CODEBOOK App里提供了如何使用RD 库的Python示例代码。您也可以参考RD 库 - 教程。请注意,需要使Eikon Desktop或Workspace App保持运行状态,这样才能打开 RD 库的Desktop Session。代码如下所示:

    	
            

import refinitiv.data as rd

from refinitiv.data.content import search

 

rd.open_session()

 

response = search.Definition(

    view = search.SearchViews.GOV_CORP_INSTRUMENTS,

    top = 10000,

    filter = "((DbType eq 'GOVT' or DbType eq 'CORP' or DbType eq 'AGNC' or DbType eq 'OMUN' or DbType eq 'OTHR') and IsActive eq true and (RCSParentDomicileGenealogy in ('G:53' 'G:3H') and RCSCurrencyLeaf eq 'US Dollar' and RCSCountryGenealogy ne 'M:DQ\G:B6'))",

    select = "RIC,RCSTRBC2012Leaf,IssueDate,EOMAmountOutstanding,PricingRedemDate,IssuerLegalName,PricingClosingYield, CurrentYield, FaceIssuedTotal,EOMPriceChange,RCSBondGradeLeaf,EOMPriceReturn"

).get_data()

response.data.df

以下是代码的执行结果:

小结

借助Eikon高级搜索功能,我们只需点击几次鼠标即可生成搜索查询代码,这些代码可以集成到您的工作流程中。希望这篇文章可以帮您找到您想要的数据,也希望您喜欢这篇文章。

如果您对 API 用法有任何问题,请在问答论坛(开发人员社区)Q&A Forum (Developer Community)中留言。我们非常乐意为您提供帮助!

  • Register or Log in to applaud this article
  • Let the author know how much this article helped you
If you require assistance, please contact us here