🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

ptrade 中 get_stock_info 查询 ETF 和可转债报错怎么办?

ptrade | 发布时间: 2026/6/8
以下内容由 EasyQuant 生成。

问题描述

get_stock_info可以查询ETF和可转债的基础信息吗?

get_stock_info文档说明可以获取股票、可转债、ETF等基础信息,但实际传入ETF代码时报错,为什么?

解决方案

在 ptrade 平台中,关于 get_stock_info 接口查询 ETF 和可转债的问题,具体解答如下:

1. get_stock_info 是否可以查询 ETF 和可转债?

根据官方 API 文档说明,get_stock_info 接口理论上是可以获取股票、可转债、ETF 等基础信息的。它主要返回的字段包括:

  • stock_name:名称
  • listed_date:上市日期
  • de_listed_date:退市日期

2. 为什么传入 ETF 代码时会报错?

如果在实际使用中传入 ETF 或可转债代码报错,通常有以下几个原因:

  • 代码格式不正确(缺少尾缀):ptrade 平台要求代码必须带有市场尾缀。例如,上交所的 ETF 必须是 510050.SS,深交所的必须是 159915.SZ。如果只传入 510050,接口会因为找不到标的而报错。
  • 底层数据源覆盖不全:虽然文档声明支持,但某些新上市的 ETF 或特定类型的可转债可能在 get_stock_info 的底层数据表中未及时更新,导致查询异常。
  • 字段不匹配get_stock_info 主要是为股票设计的,如果请求了某些 ETF 不具备的隐藏字段,可能会引发异常。

3. 最佳替代方案(推荐做法)

为了更稳定、更详细地获取 ETF 和可转债的信息,ptrade 提供了专门的 API 接口,强烈建议使用这些专用接口替代 get_stock_info

获取 ETF 信息:使用 get_etf_info

该接口专门用于获取 ETF 的详细申赎、净值等信息。

def initialize(context):
    g.etf = '510050.SS'
    set_universe(g.etf)

def handle_data(context, data):
    # 获取 ETF 详细信息
    etf_info = get_etf_info(g.etf)
    log.info(etf_info)

获取可转债信息:使用 get_cb_info

该接口专门用于获取可转债的溢价率、转股价、到期日等核心数据。

def initialize(context):
    pass

def handle_data(context, data):
    # 获取全市场可转债基础信息
    cb_df = get_cb_info()
    log.info(cb_df.head())

总结

如果只是想获取 ETF 或可转债的名称,请确保传入的代码带有正确的后缀(如 .SS.SZ)。如果需要获取更专业的品种信息,请务必使用 get_etf_infoget_cb_info,这样既能避免报错,又能获取到更丰富的数据维度。