如何通过pdblp/xbbg获取含Ticker与SEDOL的指数成分股列表?
获取指数成分股的Ticker与SEDOL信息
要同时拿到指数成分股的Ticker和SEDOL,你需要分两步操作:先通过INDX_MWEIGHT获取成分股基础列表,再针对每个成分股单独请求SEDOL标识。具体代码如下:
from xbbg import blp index = "AS21" # 第一步:获取指数成分股的基础数据(包含Ticker、权重等) constituents = blp.bds(index, "INDX_MWEIGHT") # 提取成分股Ticker列表,保留Bloomberg格式(含市场后缀) ticker_list = constituents['SECURITY'].tolist() # 第二步:批量查询所有成分股的SEDOL,使用Bloomberg的ID_SEDOL字段 sedol_results = blp.bdp(ticker_list, 'ID_SEDOL') # 合并原数据与SEDOL信息,确保Ticker与SEDOL一一对应 final_data = constituents.merge(sedol_results, left_on='SECURITY', right_index=True) # 查看核心结果(Ticker、SEDOL、权重) print(final_data[['SECURITY', 'ID_SEDOL', 'WEIGHT']])
关键说明
INDX_MWEIGHT是Bloomberg用于返回指数成分股权重的专属字段,默认返回的字段集合里不包含SEDOL,因此需要单独发起查询。ID_SEDOL是Bloomberg对应SEDOL编码的标准查询字段,通过blp.bdp可以高效批量查询多个证券的该属性。- 合并数据时,利用原DataFrame的
SECURITY列(即Ticker)与SEDOL结果的索引匹配,避免出现对应关系错乱。
内容的提问来源于stack exchange,提问作者timmers623
相关产品推荐
相关产品推荐

