3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,如果您需要获取某一天沪深全市场的 A 股股票代码列表,可以使用内置的 get_Ashares 接口。
get_Ashares(date=None)
用于获取指定日期沪深市场的所有 A 股代码列表。该函数在研究、回测、交易模块均可用。
YYYYmmdd(例如:'20230512')。
date,默认取回测当前的日期(即 context.current_dt),会随着回测日期的推进而变化。date,默认取当天的系统日期。返回一个包含股票代码的列表(list 类型),例如:['000001.SZ', '000002.SZ', ..., '603993.SS']。
以下是一个在策略中获取全市场股票代码的完整示例:
def initialize(context):
# 初始化时可以先设置一个默认的股票池
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 1. 获取当前回测/交易日的 A 股代码列表(不传参)
current_ashares = get_Ashares()
log.info('%s A股数量为: %s' % (context.blotter.current_dt, len(current_ashares)))
# 2. 获取指定历史日期(如 2013年5月12日)的 A 股代码列表
history_ashares = get_Ashares('20130512')
log.info('20130512 A股数量为: %s' % len(history_ashares))
# 3. 动态获取当前日期并格式化后传入(效果同不传参)
current_date = context.blotter.current_dt.strftime('%Y%m%d')
all_stocks = get_Ashares(date=current_date)
log.info('%s A股数量为: %s' % (current_date, len(all_stocks)))
YYYYmmdd 格式,不能包含横杠(如 2023-05-12 是错误的)。handle_data 或 before_trading_start 中不传参调用时,返回的列表会自动剔除当天尚未上市的股票,真实反映当天的市场标的情况。