我正在尝试在 Python 中使用 Bloomberg API 来获取索引成员。获取当前成分股没有问题,但我想要一个历史列表(例如:截至 1995 年第一季度,罗素 1000 或标准普尔 500 指数成分股在哪里)。
要获取当前索引成员,我可以使用以下内容:
在 excel 中,我可以使用 INDX_MEMBERS 来获取成分:
=BDS("Index Ticker", INDX_MEMBERS)
在 Python 中:
import pybbg
def Main():
bbg = pybbg.Pybbg()
IndexConst = bbg.bds('IndexName', 'INDX_MEMBERS')
或者:
from tia.bbg import LocalTerminal
resp = LocalTerminal.get_reference_data(index_ticker + ' INDEX', 'INDX_MEMBERS')
members = resp.as_frame().iloc[0,0]
问题是如何获得历史指数成员/成分。例如,我会生成季度日期,然后我想知道每个日期的成分列表。
['2020-06-30', '2020-03-31', '2019-12-31', '2019-09-30', '2019-06-30', '2019-03-31', ' 2018-12-31' ... '1980-06-30',]
我尝试了许多解决方案,包括下面的一个我得到一个空框架的解决方案:
from tia.bbg import LocalTerminal
date_start = datetime.date(2010,6,28)
date_end = datetime.date(2020,6,28)
members_russell1000_3 = LocalTerminal.get_historical('RIY Index', 'INDX_MEMBERS',start=date_start, end=date_end,).as_frame()
或下面的解决方案,无论日期如何(现在或 20 年前),我都会收到相同的成分列表:
from xbbg import blp
members = blp.bds('RIY Index', 'INDX_MEMBERS', DVD_Start_Dt=k[1], DVD_End_Dt=k[1])
对上述示例的变量解释:
- 'RIY 指数' - 罗素 1000 指数代码
- 'INDX_MEMBERS' - 指数成分列表的 Bloomberg 字段 (flds)
或者,如果我能获得带有日期的指数成分变化的历史列表(我已经有当前成分),我会很高兴