3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
get_index_stocks('000002.XSHG') 获取的股票数量不够?您调用的 get_index_stocks('000002.XSHG') 获取的是上证A股指数的成分股。顾名思义,它只包含了在上海证券交易所上市的A股股票(代码以600、601、603等开头)。
而中国A股市场除了上海证券交易所,还有深圳证券交易所(包含深市主板、中小板、创业板,代码以000、002、300等开头)以及科创板等。因此,仅获取上证A股指数的成分股,自然会漏掉深市和科创板的几千只股票。
在 JoinQuant(聚宽)平台上,获取全市场所有股票信息的正确且最直接的方法是使用 get_all_securities API。
get_all_securities(types=['stock'], date=None)
['stock'] 表示只获取股票类型的数据,过滤掉基金、指数、期货等。context.current_dt 或具体日期字符串,以避免获取到未来才上市的股票)。该函数返回一个 pandas.DataFrame,其行索引(index)就是股票代码。
# 导入聚宽数据接口
from jqdata import *
def initialize(context):
# 获取当前日期下,所有上市的A股股票信息(DataFrame格式)
all_stocks_df = get_all_securities(types=['stock'], date=context.current_dt)
# 提取 DataFrame 的 index,并转换为 list,这就是所有股票代码的列表
all_stocks_list = list(all_stocks_df.index)
# 打印查看股票总数
log.info("当前全市场A股股票总数为: %d 只" % len(all_stocks_list))
# 打印前10个股票代码看看
log.info("前10只股票代码: %s" % all_stocks_list[:10])
get_all_securities(['stock']) 接口,提取其返回的 DataFrame 的 index 即可获得完整的A股代码列表。