3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在QMT(迅投极速量化交易平台)及配套的 xtquant (xtdata) 库中,遇到 xtdata.download_sector_data() 或 xtdata.get_sector_info() 报错(如“板块错误”或获取不到数据),通常是因为本地客户端的板块数据未同步或板块名称/代码拼写不规范。
以下是解决该问题及在QMT中正确获取板块数据的完整指南:
xtdata 板块错误xtdata 的数据高度依赖于QMT终端的本地数据。如果API调用报错,请先在QMT客户端中手动补充数据:
如果您是在QMT内置的Python策略编辑器中编写策略,推荐直接使用 ContextInfo 对象提供的原生API,这些接口更加稳定且直接读取终端内存数据:
ContextInfo.get_sector()支持获取如沪深300(000300.SH)、中证500(000905.SH)等指数的成份股。
def handlebar(ContextInfo):
# 获取当前K线时间
index = ContextInfo.barpos
realtime = ContextInfo.get_bar_timetag(index)
# 获取沪深300最新成分股
hs300_stocks = ContextInfo.get_sector('000300.SH', realtime)
print("沪深300成分股:", hs300_stocks)
ContextInfo.get_stock_list_in_sector()支持获取客户端左侧板块列表中任意的板块,包括自定义板块。
def handlebar(ContextInfo):
index = ContextInfo.barpos
realtime = ContextInfo.get_bar_timetag(index)
# 获取自定义板块或概念板块成分股
my_sector_stocks = ContextInfo.get_stock_list_in_sector('我的自选', realtime)
print("自选板块成分股:", my_sector_stocks)
ContextInfo.get_industry()支持获取证监会(CSRC)行业分类下的成份股。
def handlebar(ContextInfo):
# 获取采矿业成分股
mining_stocks = ContextInfo.get_industry('CSRC采矿业')
print("采矿业成分股:", mining_stocks)
如果 xtdata 的板块接口持续报错,建议:
ContextInfo.get_stock_list_in_sector() 等内置方法,以确保策略的稳定性和执行效率。