如何使用blpapi获取指定ticker对应合约的到期日
核心错误原因
你之前调用失败是接口选型错误:
blp.bdh()是历史时间序列数据接口,仅用于拉取指定时间范围内按日期排布的动态行情/指标数据,不适配合约到期日这类固定静态属性的查询场景。- 合约到期日、最后交易日属于合约基础静态信息,必须使用
blp.bdp()(静态批量数据接口)查询。
正确调用示例
确保本地已启动Bloomberg终端、完成API会话连接后,直接执行以下代码即可:
from xbbg import blp # 查询KC1 Comdty(咖啡近月期货)的最后交易日 expiry_info = blp.bdp( tickers=['KC1 Comdty'], flds=['LAST_TRADE_DATE'] ) print(expiry_info)
字段适配说明
如果返回结果和你预期的到期日期不一致,根据实际需求替换对应字段即可:
- 查询交易所公布的合约正式交割到期日,使用
MATURITY字段 - 查询合约最后可交易日期,使用
LAST_TRADE_DATE字段 - 查询实物交割类合约的第一通知日,使用
FUT_NOTICE_FIRST字段
补充说明
如果你的需求是拉取某段历史时间范围内,当时挂牌的KC1合约对应的最后交易日变动序列,才需要用到bdh()接口,调用时必须补全时间范围参数,示例:
from xbbg import blp hist_expiry = blp.bdh( tickers=['KC1 Comdty'], flds=['LAST_TRADE_DATE'], start_date='20230101', end_date='20240101' )
注意调用bdp()时不需要传入start_date、end_date这类时间参数,接口会直接返回对应合约当前的最新静态属性值。
内容的提问来源于stack exchange,提问作者Gauri Kant
相关产品推荐
相关产品推荐

