🚀 AI 一键生成 ptrade 策略代码

ptrade量化平台获取全市场A股代码列表指南 (get_Ashares)

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

问题描述

ptrade如何获取某天的全市场股票代码?

/

解决方案

在 ptrade 量化交易平台中,如果您需要获取某一天沪深全市场的 A 股股票代码列表,可以使用内置的 get_Ashares 接口。

接口说明

get_Ashares(date=None)

用于获取指定日期沪深市场的所有 A 股代码列表。该函数在研究、回测、交易模块均可用。

参数说明

  • date (str, 可选): 指定查询的日期,格式必须为 YYYYmmdd(例如:'20230512')。
    • 回测中:如果不传入 date,默认取回测当前的日期(即 context.current_dt),会随着回测日期的推进而变化。
    • 研究/交易中:如果不传入 date,默认取当天的系统日期。

返回值

返回一个包含股票代码的列表(list 类型),例如:['000001.SZ', '000002.SZ', ..., '603993.SS']

Python 代码示例

以下是一个在策略中获取全市场股票代码的完整示例:

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)))

注意事项

  1. 日期格式严格:传入的日期字符串必须是 YYYYmmdd 格式,不能包含横杠(如 2023-05-12 是错误的)。
  2. 动态更新:在回测的 handle_databefore_trading_start 中不传参调用时,返回的列表会自动剔除当天尚未上市的股票,真实反映当天的市场标的情况。