我怎样才能通过Python获得特殊的现金?在BLQ中,它与
=BQL("6592 JP Equity","dropna(CASH_DIVS(DIVIDEND_TYPE=SPECIAL))","dates=range(1y,0d)","showdates=y")
发布于 2021-12-16 09:53:31
目前Excel中的BQL接口无法通过Python直接使用。有一些笨拙的解决方案(从Python驱动Excel并在电子表格中运行函数),但在这种情况下,信息可以通过‘古派’数据API访问,使用大量数据(与Excel中的=BDS(...)
函数相同)。
DAPI的第一个障碍是确定所需字段的名称(因为它们不一定与BQL使用的字段匹配),以及任何重写的名称。在彭博终端窗口中键入6592 JP Equity FLDS Go
以查看所有可用数据字段,然后可以搜索这些字段:
股利历史领域-现金是DVD_HIST
如果单击DVD_HIST,您将得到该字段的完整描述,以及可以应用的任何重写。在这种情况下,所需的覆盖是DVD_START_DT
。
有了这些信息,您可以使用您喜欢的任何Python包来访问Bloomberg数据。我更喜欢xbbg
,但其他软件包是可用的。如果您还没有安装彭博API,您需要首先从这里安装它。
彭博DAPI没有为dividend_type
提供覆盖,所以您必须撤回所有行并自己过滤它们:
from xbbg import blp
from datetime import datetime,timedelta
#Find start date
dt = datetime.today() - timedelta(days=365)
#Get all cash dividends after DVD_START_DT in a DataFrame
dfAll = blp.bds('6592 JP Equity','DVD_HIST',DVD_START_DT=dt.strftime('%Y%m%d'))
#Filter DataFrame for rows with dividend_type=='Special Cash'
dfSpecial = dfAll[dfAll['dividend_type'] == 'Special Cash']
print(dfSpecial)
返回:
declared_date ex_date record_date payable_date dividend_amount dividend_frequency dividend_type
6592 JP Equity 2021-02-12 2021-12-29 2021-12-31 None 43.0 Semi-Anl Special Cash
6592 JP Equity 2021-02-12 2021-06-29 2021-06-30 2021-09-13 42.0 Semi-Anl Special Cash
6592 JP Equity 2020-02-13 2020-12-29 2020-12-31 2021-03-31 53.0 Semi-Anl Special Cash
https://stackoverflow.com/questions/70372022
复制相似问题