You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Excel Bloomberg BDH函数转换为Python代码遇字段错误求助

解决blp库BDH字段无效错误的方案

1. 核对修正字段名称

Bloomberg商品类证券(Comdty)的字段名和股票等类型不一样,你用的Trade、Settle是Excel公式里的显示名,不是blp库需要的官方字段代码:

  • 对应Trade的常用字段代码是PX_LAST(最新成交价)
  • 对应Settle的常用字段代码是SETTLE_PRICE(结算价)
    要是拿不准,直接在Bloomberg终端输FLDS MZBZ4C 75.00 Comdty,查该合约的有效字段代码就行。

修正后的字段参数:

fields = ["PX_LAST", "SETTLE_PRICE"]

2. 修正日期参数匹配原Excel逻辑

原Excel公式起始时间是2024-02-20 09:00:00,你现在写的start_date="20240219"日期不对,还没带时间。blp库支持带时间的日期格式,改成:

start_date="2024-02-20 09:00:00"
end_date=""  # 留空默认取最新数据

3. 匹配原Excel的BDH选项参数

原Excel里的选项要转成blp库支持的参数:

  • Dir=V:blp库默认就是垂直返回数据,不用额外设置
  • IntrRw=true:对应options={"include_non_trading_days": True}
  • Dts=S:对应options={"date_type": "string"}
  • QRM=S:对应options={"quote_request_mode": "snapshot"}
  • Headers=Y:blp返回的DataFrame默认带表头,不用管

整合后的options:

options={
    "include_non_trading_days": True,
    "date_type": "string",
    "quote_request_mode": "snapshot",
    "adjustmentSplit": True  # 保留你原有的拆股调整设置
}

4. 完整修正代码

from blp import blp

bquery = blp.BlpQuery().start()
df = bquery.bdh(
    "MZBZ4C 75.00 Comdty",
    ["PX_LAST", "SETTLE_PRICE"],
    start_date="2024-02-20 09:00:00",
    end_date="",
    options={
        "include_non_trading_days": True,
        "date_type": "string",
        "quote_request_mode": "snapshot",
        "adjustmentSplit": True
    }
)

额外排查点

  • 要是还报字段无效,再用FLDS命令确认字段代码,别用显示名
  • 检查blp库是不是最新版本,旧版本可能不支持部分商品类字段
  • 确认Bloomberg会话和网络正常,有时会话异常也会出这种错误

内容的提问来源于stack exchange,提问作者nik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:33:30