0

我有以下 Bloomberg BDS excel 公式:(由于 excel 中的设置不同,“;”被替换为“,”)

=@BSD(”TSLA US Equity”;”CHAIN_TICKERS”;”CHAIN_EXP_DT_OVRD=20210917”;”CHAIN_PUT_CALL_TYPE_OVRD=CALL”;”CHAIN_POINTS_OVRD=1000”)

在这种情况下,我从中获得了所有看涨期权代码的列表,其中 TSLA 的到期日为 2021 年 9 月 17 日(DDMMYYYY)。

在尝试将其转换为 Bloomberg 的 XBBG API 时,我做了以下操作(基于 SO'er 早期的有用建议):

import xbbg as blp
df = blp.bds(['TSLA US Equity'],
['CHAIN_TICKERS'],
CHAIN_EXP_DT_OVRD='CHAIN_EXP_DT_OVRD=20210917',
CHAIN_PUT_CALL_TYPE_OVRD='CHAIN_PUT_CALL_TYPE_OVRD=CALL',
CHAIN_POINTS_OVRD='CHAIN_POINTS_OVRD=1000')

但我只返回一个数据点,而不是整个列表。

我究竟做错了什么?

4

1 回答 1

1

您指定的参数不正确。该函数不理解 CHAIN_POINTS_OVRD 值,因此回退到默认值 1,这就是返回的数据帧只有一个值的原因。

xbbg你通常可以提供 Python 类型,覆盖名称成为调用中的参数名称(不带引号)bds。所以在这种情况下,日期覆盖可以是一个datetime值,而链点覆盖可以是一个数字。

from xbbg import blp
from datetime import datetime

df = blp.bds('TSLA US Equity',
             'CHAIN_TICKERS',
             CHAIN_EXP_DT_OVRD=datetime(2021,9,17),
             CHAIN_PUT_CALL_TYPE_OVRD='CALL',
             CHAIN_POINTS_OVRD=1000)

print(df)

输出:

                                ticker
TSLA US Equity     TSLA US 09/17/21 C1
TSLA US Equity     TSLA US 09/17/21 C2
TSLA US Equity     TSLA US 09/17/21 C3
TSLA US Equity     TSLA US 09/17/21 C4
TSLA US Equity     TSLA US 09/17/21 C5
...                                ...
TSLA US Equity  TSLA US 09/17/21 C1600
TSLA US Equity  TSLA US 09/17/21 C1625
TSLA US Equity  TSLA US 09/17/21 C1650
TSLA US Equity  TSLA US 09/17/21 C1675
TSLA US Equity  TSLA US 09/17/21 C1700

[334 rows x 1 columns]
于 2021-08-31T13:52:51.890 回答