3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化平台中,使用 get_stock_status 接口查询股票状态(如 ST、停牌、退市)时,如果返回的字典中某个股票代码对应的值为 None,通常是由以下几种原因导致的:
这是最常见的原因。如果指定的日期(query_date)或当前日期下,该股票没有对应的状态记录,系统会返回 None。例如,查询某只股票在某天是否停牌,如果该股票当天正常交易,或者该股票在查询日期还未上市,就可能返回 None。
'600570.SS' 或 '000001.SZ')。query_type 参数输入了不支持的类型。目前支持的类型有 'ST'、'HALT'、'DELISTING'。如果输入了其他字符串,可能会导致查询失败并返回 None。query_date,请确保日期格式为 'YYYYmmdd'(例如 '20231025')。格式错误会导致无法正确解析日期,从而返回 None。根据 ptrade API 文档:
返回:返回 dict 类型,每支股票对应的值为 True 或 False,当没有查询到相关数据或者输入有误时返回 None。
stocks 列表中的代码是否正确,是否包含正确的市场后缀。query_type 是否为 'ST'、'HALT' 或 'DELISTING' 之一。query_date,确认日期格式是否为 'YYYYmmdd',并且该日期是有效的交易日。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,请检查代码或数据")