我需要打开,高,低,关闭,从彭博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梳子的交换信息”
知道怎么解决这个问题吗?
发布于 2021-06-25 14:42:08
Xbbg使用“exchange”纯粹作为计算对底层Bloomberg API调用的时区和交易时间的方法(因为API只需要开始和结束UTC日期/时间)。
"CL1“起作用而”S1“不起作用的原因是前者的代码被列在默认的xbbg assets.yml文件中。此文件提供了对常见代码的查找,以识别它们的交易时间/ TZ。交易所是在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]https://stackoverflow.com/questions/68132136
复制相似问题