作者:
您的工作流程中是否曾需要查找符合特定条件的数据内容?
例如,
查找功夫债或中资美元债券,即由中国金融机构和企业发行的以美元计价的债券,其搜索条件可表示如下:
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数据集 |
|
Search搜索 |
|
Filters筛选条件 | To put the criteria of 基于以下字段进行筛选过滤
|
应用搜索条件后,可以保存它们以供将来使用。添加/删除搜索结果的列,然后将结果导出为 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"
)
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