我试图在Python中使用彭博API来获取索引成员。我没有问题得到目前的选民,但我想要一个历史清单(例如:在哪里罗素1000或标准普尔500指数成分股的Q1 1995年)。
要获得当前索引成员,我可以使用以下方法:
在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])
对上述例子的可变解释:
ticker
)
或者,如果我能得到有日期的索引成分更改的历史列表,我会很高兴(我已经有了当前的成员)。
发布于 2020-08-19 16:36:10
您需要使用INDX_MWEIGHT_PX
字段和END_DATE_OVERRIDE
覆盖(日期格式: yyyymmdd)。它是一个引用数据请求,所以可能是bds
,而不是python库中的bdh
,但是我从未使用过它,所以不能100%确定,您可能需要尝试一些解决方案,直到找到正确的解决方案。
https://stackoverflow.com/questions/63443153
复制相似问题