彭博BQL建模与
BQuant应用分享:

ETF分析 & 模板下载
BQuant 应用 & BQL模板系列
为了让投资者更加便捷有效地运用彭博数据进行分析,彭博金融建模团队借助彭博数据查询语言BQL开发了一系列实用工具,通过每月推出的BQuant应用和BQL Excel模板,助您使用彭博高质量的市场数据分析当前热门话题。您还可以在微软Excel表格中使用BQL取数,并在彭博终端灵活屏的BQuant功能(BQNT<GO>)中查看。通过进一步自行搭建模板与应用,您可以与团队中的其他用户分享。
本期主题:ETF分析
2022年7月4日,ETF被正式纳入中国大陆和香港的互联互通标的,有83个ETF在北向通交易之列。彭博量化平台BQuant上的 “ETF分析工具”,用于追踪这些ETF的价格变动、资金流向,成员的板块权重、财务指标,方便您及时发现市场变动与投资机会,以及如何在Excel中创建一个自动更新的ETF持仓数据和滚动波动率计算表。
BQuant 应用分享:ETF 分析工具
本期介绍的App是ETF分析,你可以用此应用对单个或多个ETF进行多维度的快捷分析与数据可视化,所列功能如下:
分析单只互通互联ETF按照申万宏源分类标准的每个板块的单一财务指标
对比ETF与它的基准指数之间的板块配置权重差别
查看对比多个ETF的板块配置权重
查看ETF中有多少比例的成分股有盈利发布
BQuant 应用支持完全自定义,您可以对App中的数据展示与图表排版进行自定义的调整,或者添加额外的分析栏位。
如果您想要了解更多关于BQuant应用程序的构建与客制化,请联系您的彭博客户经理或者在文末扫码预约演示。
BQL模板:ETF分析
我们亦可以在Excel中使用BQL语言,例如以下对基金持仓数据的分析与滚动波动率的计算。在BQL中,我们可以运用范围函数(Universe Function),来间接地获取资产/指数间的相关联数据,例如指数成分,发行人债券,以及基金持仓。
首先,我们在Excel用如下公式获取ETF基本信息:名称,标的指数,以及基金总资产
=BQL.Query("get(NAME, FUND_BENCHMARK, FUND_TOTAL_ASSETS().VALUE)"&"for('510050 C1 Equity')")
我们使用范围函数members将ETF代码转换为所有持仓,列出股票代码、名称、以及持仓权重
=BQL.Query("get(NAME, ID().WEIGHTS)"&"for(members('510050 C1 Equity', type=holdings))")
接下来计算按照持仓加权平均的90天滚动波动率,我们用let语句定义各个元素,再组合为一个云端计算的完整语句:
用变量#price定义个股过去180自然日的收盘价,移除NA并截取最近90工作日
#price=last(dropna(px_last(dates=range(-180d,0d))), 90);
定义#vol为90天股价的对数收益率的标准差,并将波动率按260交易日年化
#vol=std(diff(ln(#price)))*(sqrt(260));
定义#rolling_vol为指定滚动窗口期内每天个股波动率基于持仓权重的加权平均
#rolling_vol=rolling(wavg(group(#vol), group(id().weights)), iterationdates=range(#start, #end));
将各部分组合为完整语句:
执行语句,我们即可得到滚动波动率的时间序列,并画出图形
如果您有兴趣使用并进一步自定义以上由BQuant和BQL所搭建的功能,请扫描左方二维码下载Excel模板。
* BQuant:彭博量化平台BQuant是集彭博数据、数据分析工具、可视化工具为一体的一站式量化应用平台,基于Jupyter Notebook操作环境,自动搭载了彭博数据库和彭博新一代API语言“BQL”(Bloomberg Query Language),方便您结合Python语言,创建并分享可视化程序。是你制作金融分析的prototype app的不二之选。目前仅对Bloomberg Anywhere买方用户开放使用。
* BQL: 彭博新一代API语言,在传统彭博API语言上加上了Point-in-Time取数指令、按条件检索证券、归类统计等函数,目前可在Excel和BQuant功能中使用。
彭博Bloomberg享有对本文的独家版权,未经许可,请勿直接转载或用于其他商业用途,否则将追究法律责任。
继续阅读
阅读原文