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

ptrade 中 get_stock_name 返回 None 是股票代码错误吗?

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

问题描述

get_stock_name返回的股票名称为None是什么原因?

使用get_stock_name获取股票名称时,返回的字典中value为None,是股票代码错误吗?

解决方案

是的,您猜测得很对。在 ptrade 量化平台中,使用 get_stock_name 函数获取股票名称时,如果返回的字典中 valueNone,通常是因为没有查询到相关数据或者输入的股票代码有误

导致返回 None 的常见原因:

  1. 股票代码格式不正确:ptrade 平台通常要求股票代码带有市场后缀。例如,上海市场应为 .SS(或 .XSHG),深圳市场应为 .SZ(或 .XSHE)。如果只输入了数字代码(如 '600570'),系统将无法识别,从而返回 None
  2. 股票代码不存在:您输入的代码可能是一个无效的代码,或者该标的在当前查询的时间点(如回测的特定历史日期)尚未上市或已经退市。
  3. 不支持的标的类型:虽然该接口支持股票、可转债、ETF 等,但如果输入了平台暂不支持查询名称的特殊标的代码,也可能返回 None

正确的使用示例:

def initialize(context):
    # 正确的带后缀的股票代码
    g.security = ['600570.SS', '000001.SZ', '999999.SS'] 
    set_universe(g.security)

def handle_data(context, data):
    # 获取股票池所有的股票名称
    stock_names = get_stock_name(g.security)
    log.info(stock_names)
    # 预期输出类似:{'600570.SS': '恒生电子', '000001.SZ': '平安银行', '999999.SS': None}
    # 其中 '999999.SS' 因为是不存在的代码,所以返回 None

排查建议:

  • 检查您的股票代码字符串是否包含了正确的后缀(.SS.SZ)。
  • 确认该股票代码在您运行策略(或回测)的时间段内是真实存在且处于上市状态的。