在彭博api上获取商品指数期货价格

2024-04-29 19:04:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从彭博api获取CL1、S1、C1等商品的开盘、高点、低点、收盘、成交量数据

现在,我正在做

from xbbg import blp
blp.bdib(ticker="CL1 COMB Comdty", dt="2021-06-01", exch="CME")

这对CL1有效,但当我尝试其他任何东西时它都不起作用。例如跑步

blp.bdib(ticker="S 1 COMB Comdty", dt="2021-06-01", exch="CME")

给我一个KeyError:“找不到S1 Comdty的交换信息”

有没有关于如何解决这个问题的线索


Tags: apidt商品tickercombc1exchs1
1条回答
网友
1楼 · 发布于 2024-04-29 19:04:31

Xbbg仅将“交换”用作计算时区和交易时间的方法,以调用基础Bloomberg API(因为API仅采用UTC开始和结束日期/时间)

“CL1”起作用而“s1”不起作用的原因是前一个股票代码列在默认的xbbgassets.yml文件中。此文件提供常见股票代码的查找,以确定其交易时间/交易日。“交易所”列在exch.yml

不在assets.yml中用于指定CME的标记器的参数名为“ref”:

df = blp.bdib(ticker="S 1 COMB Comdty", dt="2021-06-01", ref="CME")
print(df.tail())

其中:

                          S 1 COMB Comdty           ...                    
                                     open     high  ... num_trds      value
2021-06-01 14:15:00-04:00         1548.75  1550.00  ...      105  365683.75
2021-06-01 14:16:00-04:00         1549.75  1550.00  ...       45  161172.75
2021-06-01 14:17:00-04:00         1549.50  1549.50  ...       29  139409.25
2021-06-01 14:18:00-04:00         1548.50  1549.00  ...       24  168826.25
2021-06-01 14:19:00-04:00         1548.25  1548.75  ...       43  247673.00

或者,您可以向assets.yml文件添加条目(路径为\Lib\site packages\xbbg\markets\assets.yml):

Comdty:
  ...
  - tickers: [S]
    exch: CME
    freq: M
    is_fut: True
  ...

然后你可以打电话:

df = blp.bdib(ticker="S 1 COMB Comdty", dt="2021-06-01")

CME的exch.yml条目为:

CME:
  tz: America/New_York
  allday: [1800, 1700]
  day: [800, 1700]

相关问题 更多 >