使用 python 从 Bloomberg API 获取不同货币的数据?

Getting data with diferent currencies from Bloomberg API,using python?

我正在尝试从 Bloomberg 中提取数据。 我需要使用不同货币的多个字段的数据。 我无法从这个答案中得到我需要的东西 https://github.com/alpha-xone/xbbg

有人可以帮忙吗? “特定时间”和“一段时间”?

我尝试了以下代码,但它没有用。

blp.bdh(
       tickers='TPXDDVD Index,SCTOGAA LN Equity,VAPEJSI ID Equity', flds=['PX_LAST', 'FUND_NET_ASSET_VAL', 'FUND_TOTAL_ASSETS'],
     start_date='2018-10-01', end_date='2019-11-01', FX=['JPY','GBp','USD']
    )

提取历史数据时,最好将相似的证券归为一组。在 OP 的问题中,'TPXDDVD Index' 是计算得出的总 return 索引。因此,它不会有与其他两个相同的可用字段,正如它们的代码所示,它们是报价基金。

只取两个报价基金,SCTOGAA LN EquityVAPEJSI ID Equity,我们可以确定每个字段的默认货币。这是彭博社,命名约定是有机的,可能并不明显!两个值字段是 FUND_NET_ASSET_VALFUND_TOTAL_ASSETS,每个字段的默认货币可能不同。

我们可以使用 bdp() 函数来拉回这些货币,如下所示(NB 代码在 python 列表中:

from xbbg import blp

tickers = ['SCTOGAA LN Equity','VAPEJSI ID Equity']
df = blp.bdp(tickers,['NAV_CRNCY','FUND_TOTAL_ASSETS_CRNCY'])
print(df)

结果:

                  nav_crncy fund_total_assets_crncy
SCTOGAA LN Equity       GBp                     GBP
VAPEJSI ID Equity       USD                     EUR

因此对于 VAPEJSI NAV 和总资产以不同的货币计价。还有注意。 GBp 不是数据录入员的错字,而是 GBP pence.

您可以使用应用于函数调用中所有字段的单一货币值覆盖货币。

from xbbg import blp
    
fields = ['FUND_NET_ASSET_VAL','FUND_TOTAL_ASSETS']

df = blp.bdh('SCTOGAA LN Equity',fields,
             start_date='2018-10-01', end_date='2019-11-01')

print(df.tail(2))

df = blp.bdh('SCTOGAA LN Equity',fields,
             start_date='2018-10-01', end_date='2019-11-01', Currency='USD')

print(df.tail(2))

其中 return 个:

            SCTOGAA LN Equity
           FUND_NET_ASSET_VAL FUND_TOTAL_ASSETS
2019-10-31              70.81           1755.65
2019-11-01              70.99           1756.51
            SCTOGAA LN Equity
           FUND_NET_ASSET_VAL FUND_TOTAL_ASSETS
2019-10-31            0.91607        2271.28527
2019-11-01            0.91840        2272.40325

英镑便士的资产价值已转换为美元。顺便说一句,如果你用 Currency='USd' 代替,你将得到以美分为单位的价格。你必须喜欢区分大小写......