如何从 Bloomberg Python API 获取数据?
How to get data from Bloomberg Python API?
如何通过Python获得特别现金?
在 BLQ 中它适用于
=BQL("6592 JP Equity","dropna(CASH_DIVS(DIVIDEND_TYPE=SPECIAL))","dates=range(1y,0d)","showdates=y")
目前 Excel 中的 BQL 接口无法通过 Python 直接使用。有一些笨拙的解决方法(从 Python 驱动 Excel 和 运行 电子表格中的函数),但在这种情况下,可以通过 'old school' 数据 API,使用批量数据(与 Excel 中的 =BDS(...)
函数相同的方式)。
DAPI 的第一个障碍是确定所需字段的名称(因为它们不一定与 BQL 使用的字段匹配),以及任何覆盖的名称。在彭博终端 window 中键入 6592 JP Equity FLDS Go
以查看所有可用的数据字段,然后可以搜索这些字段:
股息历史字段 - 现金是 DVD_HIST
如果单击 DVD_HIST,您将获得该字段的完整说明,以及可以应用的任何覆盖。在这种情况下,需要的覆盖是 DVD_START_DT
.
有了这些信息,您就可以使用您喜欢的任何 Python 软件包来访问彭博数据。我的偏好是 xbbg
,但也可以使用其他软件包。如果您还没有安装 Bloomberg API,请先从 here 安装它。
Bloomberg 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)
哪个returns:
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
如何通过Python获得特别现金? 在 BLQ 中它适用于
=BQL("6592 JP Equity","dropna(CASH_DIVS(DIVIDEND_TYPE=SPECIAL))","dates=range(1y,0d)","showdates=y")
目前 Excel 中的 BQL 接口无法通过 Python 直接使用。有一些笨拙的解决方法(从 Python 驱动 Excel 和 运行 电子表格中的函数),但在这种情况下,可以通过 'old school' 数据 API,使用批量数据(与 Excel 中的 =BDS(...)
函数相同的方式)。
DAPI 的第一个障碍是确定所需字段的名称(因为它们不一定与 BQL 使用的字段匹配),以及任何覆盖的名称。在彭博终端 window 中键入 6592 JP Equity FLDS Go
以查看所有可用的数据字段,然后可以搜索这些字段:
股息历史字段 - 现金是 DVD_HIST
如果单击 DVD_HIST,您将获得该字段的完整说明,以及可以应用的任何覆盖。在这种情况下,需要的覆盖是 DVD_START_DT
.
有了这些信息,您就可以使用您喜欢的任何 Python 软件包来访问彭博数据。我的偏好是 xbbg
,但也可以使用其他软件包。如果您还没有安装 Bloomberg API,请先从 here 安装它。
Bloomberg 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)
哪个returns:
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