首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从彭博Python API中获取数据?

如何从彭博Python API中获取数据?
EN

Stack Overflow用户
提问于 2021-12-16 00:43:35
回答 1查看 6.1K关注 0票数 0

我怎样才能通过Python获得特殊的现金?在BLQ中,它与

代码语言:javascript
运行
复制
=BQL("6592 JP Equity","dropna(CASH_DIVS(DIVIDEND_TYPE=SPECIAL))","dates=range(1y,0d)","showdates=y")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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提供覆盖,所以您必须撤回所有行并自己过滤它们:

代码语言:javascript
运行
复制
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)

返回:

代码语言:javascript
运行
复制
               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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70372022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档