3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在PTrade中,查询一只股票属于哪些行业板块(如证监会行业、聚源行业)和概念板块,主要使用 get_stock_blocks 函数。
以下是详细的接口说明、代码示例及返回数据解析。
get_stock_blocks(stock_code)
stock_code (str),股票代码(如 '600570.SS')。dict),键(Key)代表板块类型,值(Value)是包含板块代码和名称的列表。以下代码展示了如何在策略中获取并打印“恒生电子”所属的所有板块信息:
def initialize(context):
# 设置要查询的股票,例如:恒生电子
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 获取股票所属板块信息
# 注意:该函数获取的是当前最新的板块数据
blocks_info = get_stock_blocks(g.security)
# 打印原始返回数据
log.info("股票 %s 的完整板块信息:" % g.security)
log.info(blocks_info)
# 解析并分别打印不同类型的板块
if blocks_info:
# 1. 获取聚源行业 (HY)
if 'HY' in blocks_info:
hy_list = blocks_info['HY']
log.info("【聚源行业】: %s" % str(hy_list))
# 2. 获取证监会行业 (ZJHHY)
if 'ZJHHY' in blocks_info:
zjh_list = blocks_info['ZJHHY']
log.info("【证监会行业】: %s" % str(zjh_list))
# 3. 获取概念板块 (GN)
if 'GN' in blocks_info:
gn_list = blocks_info['GN']
# 遍历打印所有概念
gn_names = [item[1] for item in gn_list]
log.info("【概念板块】: %s" % ", ".join(gn_names))
# 4. 获取地域板块 (DY)
if 'DY' in blocks_info:
dy_list = blocks_info['DY']
log.info("【地域板块】: %s" % str(dy_list))
get_stock_blocks 返回的字典中,常见的 Key 及其含义如下:
| Key (键) | 含义 | 示例数据 | 说明 |
|---|---|---|---|
| HY | 聚源行业 | [['710200.XBHS', '计算机应用']] |
常用行业分类标准 |
| ZJHHY | 证监会行业 | [['I65000.XBHS', '软件和信息技术服务业']] |
官方行业分类 |
| GN | 概念板块 | [['003596.XBHS', '融资融券'], ...] |
包含多个概念,如人工智能、区块链等 |
| DY | 地域板块 | [['DY1172.XBHS', '浙江板块']] |
公司所在地 |
| HGT | 沪港通 | [['HGTHGT.XBHK', '沪股通']] |
是否属于沪港通标的 |
数据格式注意:
Value 是一个列表的列表,格式为 [[板块代码, 板块名称], [板块代码, 板块名称], ...]。
未来函数风险(回测中):
get_stock_blocks 获取的是**当下(最新)**的板块归属数据。如果在回测模式下使用(例如回测 2015 年的数据),它返回的仍然是该股票在当前(例如 2024 年)所属的板块。
代码后缀:
传入的 stock_code 必须包含后缀(如 .SS 或 .SZ),否则可能无法正确匹配。
Q1: 如何获取某个行业(例如“白酒”)下的所有股票代码?
A1: 使用 get_industry_stocks(industry_code) 接口。首先你需要通过 get_stock_blocks 查到“白酒”对应的行业代码(例如聚源行业代码),然后传入该接口获取成分股列表。
Q2: get_stock_blocks 可以在 initialize 中调用吗?
A2: 可以,但通常建议在 handle_data 或 before_trading_start 中调用,或者在 initialize 中调用一次并存储在全局变量 g 中,以避免重复查询。
Q3: 为什么查询不到某些新上市股票的板块信息?
A3: 板块数据的更新依赖于数据商(如聚源)的维护。新股上市后,数据商需要一定时间进行分类和打标签,因此可能存在短暂的数据延迟。
Q4: 返回的板块代码后缀 .XBHS 是什么意思?
A4: 这是 PTrade 内部用于标识板块指数的后缀,代表该代码是一个板块索引,而非具体的个股交易代码。