问题描述
解决方案
在 QMT (Quantitative Trading Platform) 中,查询某只股票属于哪个申万行业,可以使用内置的全局函数 get_industry_name_of_stock。
核心函数说明
函数名:get_industry_name_of_stock(industryType, stockcode)
参数说明:
industryType(string): 行业分类标准。查询申万行业时,需传入'SW';查询证监会行业时,传入'CSRC'。stockcode(string): 股票代码,格式为代码.市场,例如'600000.SH'。
返回值:
- 返回一个字符串,即该股票对应的行业名称。
- 如果未找到或无分类,则返回空字符串。
代码示例
以下是一个完整的策略代码示例,展示如何在 init 初始化函数中查询并打印指定股票的申万行业名称。
# -*- coding: gbk -*-
def init(ContextInfo):
# 设定要查询的股票代码
stock_code = '600000.SH'
# 调用函数查询申万行业
# 第一个参数 'SW' 代表申万行业分类
sw_industry = get_industry_name_of_stock('SW', stock_code)
# 打印结果
print(f"股票 {stock_code} 所属申万行业为: {sw_industry}")
# 也可以查询证监会行业作为对比
csrc_industry = get_industry_name_of_stock('CSRC', stock_code)
print(f"股票 {stock_code} 所属证监会行业为: {csrc_industry}")
def handlebar(ContextInfo):
# 本示例仅在初始化时查询一次,handlebar 中无需操作
pass
注意事项
- 数据依赖:该函数依赖于本地的基础数据。如果返回为空,请检查客户端“数据管理”中是否已下载或补充了基础数据。
- 行业标准:
'SW'通常指申万一级行业。 - 代码格式:必须包含市场后缀(如
.SH或.SZ),否则可能无法正确识别。
Q&A
Q: 如何获取某个申万行业下的所有成分股?
A: 可以使用 ContextInfo.get_industry(industry_name) 函数。例如 ContextInfo.get_industry('SW银行') 可以获取申万银行行业的所有成分股列表。
Q: get_industry_name_of_stock 支持哪些行业分类?
A: 主要支持 'SW' (申万行业) 和 'CSRC' (证监会行业)。
Q: 如果股票刚刚上市,能查到行业吗?
A: 这取决于 QMT 终端的基础数据更新情况。通常新股上市后,需要等待数据服务商更新行业分类数据并同步到本地终端。