Python中通过XBBG获取公司债TRACE交易数据返回空帧的解决方法
问题原因
- 语法笔误:测试代码行首多余的
=是复制Excel公式时带入的无效字符,Python环境下直接运行会触发语法错误,需要删除。 - 参数大小写不匹配:彭博API对自定义覆盖参数大小写敏感,Excel公式中使用的参数是
IntrRW=True,测试代码中写为IntrRw=True(末尾W小写),接口无法识别该参数,会默认关闭日内原始成交记录返回权限。 - 字段名大小写不匹配:TRACE逐笔成交字段需使用大写
TRADE传入,测试代码传入小写trade时,部分版本XBBG不会自动做字段名大小写映射,导致字段匹配失败。 - 数据频率未指定:XBBG的
bdh接口默认请求频率为日频(per='D'),日频维度下无TRACE逐笔成交的聚合数据,必须显式指定逐笔频率才能拉取到明细。
正确调用代码
from xbbg import blp trade_df = blp.bdh( tickers='49407PAB6 @TRAC CORP', flds=['TRADE'], start_date='2022-02-01', end_date='2022-06-15', IntrRW=True, per='T', # T对应Tick逐笔频率,用于拉取日内成交明细 fill='NA' )
注意事项
- 返回的DataFrame结构和Excel端BDH公式拉取结果完全一致,包含成交时间戳、交易标识、成交价格、成交量四个字段
- 结果中成交量为0的记录是彭博收录的TRACE可撤销交易申报记录,和Excel端返回逻辑一致,不属于数据错误
- 若请求的时间范围超过3个月,建议拆分为多个短时间段分批请求,避免彭博接口因单次返回数据量过大触发截断,导致数据不全
内容的提问来源于stack exchange,提问作者Chris Patras
相关产品推荐
相关产品推荐

