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

ptrade 平台 get_stock_status 接口返回 None 是什么原因?

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

问题描述

get_stock_status返回None是什么原因?

使用get_stock_status查询股票状态时,返回的字典中股票代码对应的值为None,是什么情况?

解决方案

在 ptrade 量化平台中,使用 get_stock_status 接口查询股票状态(如 ST、停牌、退市)时,如果返回的字典中某个股票代码对应的值为 None,通常是由以下几种原因导致的:

1. 未查询到相关数据

这是最常见的原因。如果指定的日期(query_date)或当前日期下,该股票没有对应的状态记录,系统会返回 None。例如,查询某只股票在某天是否停牌,如果该股票当天正常交易,或者该股票在查询日期还未上市,就可能返回 None

2. 输入参数有误

  • 股票代码错误:传入的股票代码格式不正确,或者该股票代码在系统中不存在。请确保股票代码包含正确的后缀(如 '600570.SS''000001.SZ')。
  • 查询类型错误query_type 参数输入了不支持的类型。目前支持的类型有 'ST''HALT''DELISTING'。如果输入了其他字符串,可能会导致查询失败并返回 None
  • 日期格式错误:如果指定了 query_date,请确保日期格式为 'YYYYmmdd'(例如 '20231025')。格式错误会导致无法正确解析日期,从而返回 None

3. 接口说明回顾

根据 ptrade API 文档:

返回:返回 dict 类型,每支股票对应的值为 True 或 False,当没有查询到相关数据或者输入有误时返回 None。

排查建议

  1. 检查股票代码:确认传入的 stocks 列表中的代码是否正确,是否包含正确的市场后缀。
  2. 检查查询类型:确认 query_type 是否为 'ST''HALT''DELISTING' 之一。
  3. 检查日期:如果使用了 query_date,确认日期格式是否为 'YYYYmmdd',并且该日期是有效的交易日。
  4. 增加异常处理:在策略代码中,处理 get_stock_status 的返回值时,务必考虑到 None 的情况,避免引发 TypeError

示例代码(包含异常处理)

def handle_data(context, data):
    stocks_list = ['600570.SS', '000001.SZ', 'invalid_code']
    # 查询是否为 ST 股票
    st_status = get_stock_status(stocks_list, 'ST')
    
    for stock in stocks_list:
        status = st_status.get(stock)
        if status is True:
            log.info(f"{stock} 是 ST 股票")
        elif status is False:
            log.info(f"{stock} 不是 ST 股票")
        else:
            log.warning(f"{stock} 状态查询返回 None,请检查代码或数据")