问题描述
为何在 get_sector_list 找不到北京 A 股的分类呢?我通过 download_sector_data()结果一样?是没有这个板块吗?
解决方案
在 QMT 平台中,如果您通过 get_sector_list 或 download_sector_data() 找不到“北京A股”板块,通常是由以下几个原因导致的。QMT 的板块数据直接依赖于客户端左侧的板块列表,您可以按照以下步骤进行排查和解决:
1. 检查客户端板块名称是否匹配
QMT API 获取板块成分股时,传入的 sectorname 必须与客户端左侧板块树中显示的名称完全一致。
- 排查方法:打开 QMT 客户端,在左侧的“板块”或“行情”栏目中,查找北交所相关的板块。它可能不叫“北京A股”,而是命名为**“北交所A股”、“北交所”或“京市A股”**等。
- 调用示例:如果客户端显示为“北交所A股”,您的代码应写为:
def handlebar(ContextInfo): # 假设客户端显示的板块名为 '北交所A股' bj_stocks = ContextInfo.get_stock_list_in_sector('北交所A股', ContextInfo.get_bar_timetag(ContextInfo.barpos)) print(bj_stocks)
2. 客户端版本或数据未更新
北交所是相对较新的板块,如果您的 QMT 客户端版本较旧,或者没有同步最新的板块数据,可能会导致该板块缺失。
- 解决方法:
- 重启 QMT 客户端,系统通常会在启动时自动更新基础数据。
- 在客户端菜单中找到“数据管理” -> “补充数据”,手动补充最新的板块数据和基础数据。
- 检查 QMT 客户端是否需要升级到最新版本。
3. 官方默认板块中确实缺失
如果经过上述检查,客户端左侧的系统板块中确实没有北交所相关的分类,这可能是当前券商提供的 QMT 版本中未将其作为默认板块列出。
- 替代方案(自定义板块):
QMT 支持读取自定义板块。您可以手动创建一个包含北交所股票的板块:- 在 QMT 客户端左侧板块区域,右键选择“新建板块”(例如命名为
My_BJ_A)。 - 将需要的北交所股票(代码后缀通常为
.BJ)添加到该板块中。 - 在代码中直接调用您的自定义板块:
def handlebar(ContextInfo): # 调用自定义板块 my_bj_stocks = ContextInfo.get_stock_list_in_sector('My_BJ_A', ContextInfo.get_bar_timetag(ContextInfo.barpos)) print(my_bj_stocks) - 在 QMT 客户端左侧板块区域,右键选择“新建板块”(例如命名为
总结
API 找不到板块的根本原因通常是名称不匹配或本地客户端缺少该板块节点。建议优先在客户端界面核实北交所板块的具体名称,若无此板块,可通过升级客户端或建立自定义板块来解决。