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

ptrade 平台调用 get_cb_info 返回空 DataFrame 是什么原因?

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

问题描述

get_cb_info返回空DataFrame是什么原因?

使用get_cb_info获取可转债基础信息时,返回空DataFrame,是代码有问题吗?

解决方案

在 ptrade 量化平台中使用 get_cb_info 接口获取可转债基础信息时,如果返回空的 DataFrame,通常不是代码本身的语法错误,而是由以下几个原因导致的:

1. 缺少可转债基础数据权限

这是最常见的原因。根据 ptrade API 文档说明:

此 API 依靠可转债基础数据权限,使用前请与券商确认是否有此权限,无权限时调用返回空 DataFrame。

解决方法:
请联系您开户的券商客服或客户经理,确认您的 ptrade 账户是否已经开通了“可转债基础数据”的权限。如果没有,请申请开通。

2. 接口调用失败

在极少数情况下,可能是由于网络波动或服务器端数据服务暂时不可用,导致获取数据失败。

解决方法:

  • 增加重试机制: 在策略代码中,可以对 get_cb_info 的调用增加异常处理和重试逻辑。
  • 检查日志: 查看 ptrade 平台的运行日志,看是否有相关的网络或接口报错信息。

3. 运行环境限制

请注意 get_cb_info 的使用场景限制:

该函数仅在研究、交易模块可用。

解决方法:
确保您是在“研究”模块(如 Jupyter Notebook)或“交易”模块中调用此函数。如果在不支持的模块(如某些特定的回测环境,具体视券商配置而定)中调用,可能会出现异常。

总结

当遇到 get_cb_info 返回空 DataFrame 时,首要步骤是联系券商确认权限。确认权限无误后,再排查网络或运行环境的问题。

示例代码(带简单检查):

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    df = get_cb_info()
    if df.empty:
        log.warning("获取可转债信息失败,返回空 DataFrame。请检查是否开通了可转债基础数据权限!")
    else:
        log.info("成功获取可转债信息,共 %d 条记录。" % len(df))
        # log.info(df.head())