我是Mr.看海,由于我开发的看海量化交易系统是基于miniQMT的行情和交易接口,所以在此我将miniQMT的使用教程采用案例集的形式进行讲解,该手册会不断完善和丰富,为做miniQMT的开发的朋友提供便利。
需要注意的是,本手册仅作为官方手册的辅助教程,最权威的接口请以官方说明文档为准:
官方手册请点击这里
1.板块数据与成分股数据获取的运行逻辑与演示案例
在量化交易中,板块数据和成分股数据是非常重要的基础数据。XtQuant提供了完整的接口来获取这些数据。
1.1 板块数据获取的基本流程
在获取板块数据前,我们首先需要使用download_sector_data()函数下载板块分类数据。这个函数不需要任何参数,会同步下载所有板块的最新分类数据。由于板块数据变化频率较低,建议在程序启动时调用一次,或者每周、每月定期更新。需要注意的是,这是一个同步操作,在数据下载完成前会阻塞程序的执行。
下载完成后,我们可以通过get_sector_list()函数获取所有可用的板块列表。这个函数会返回一个字符串列表,包含了所有板块的名称。返回的板块列表中包含了行业板块、概念板块、地域板块等多种类型。
获取到板块列表后,就可以使用get_stock_list_in_sector()函数来获取特定板块的成分股列表。这个函数接受板块名称作为参数,返回该板块下所有成分股的代码列表。返回的股票代码采用”code.market”的格式(如”600000.SH”)。
下面通过案例演示获取板块数据的基本流程:
from xtquant import xtdata
# 1.下载板块分类数据
xtdata.download_sector_data()
# 2.获取所有板块列表
sector_list = xtdata.get_sector_list()
print("板块列表示例:")
for sector in sector_list[:5]:
print(sector)
# 3.获取某个板块的成分股
stocks = xtdata.get_stock_list_in_sector("沪深300")
print("\n沪深300成分股示例:")
print(stocks[:5])
运行结果:
板块列表示例:
上期所
上证A股
上证B股
上证期权
上证转债
沪深300成分股示例:
['600000.SH', '600009.SH', '600010.SH', '600011.SH', '600015.SH']
1.2 获取指数成分股与权重数据
对于指数投资来说,成分股权重数据是非常重要的基础数据。在获取指数成分股权重数据时,我们首先需要调用download_index_weight()函数下载最新的权重数据。这个函数会同步下载所有指数的成分股权重信息,由于数据量较大,特别是首次下载时可能需要较长时间。建议每周更新一次数据,以确保使用的是最新的权重信息。
下载完成后,我们可以使用get_index_weight()函数获取特定指数的成分股权重信息。这个函数需要传入指数代码(如”000300.SH”代表沪深300指数),会返回一个字典,其中key是成分股代码,value是对应的权重值。返回的权重值采用百分比表示,例如5表示该股票占指数5%的权重。在使用这些数据时,建议检查权重总和是否接近100%,以验证数据的合理性。
示例代码:
from xtquant import xtdata
# 1.下载指数成分权重数据
xtdata.download_index_weight()
# 2.获取指数成分股权重
weights = xtdata.get_index_weight("000300.SH") # 沪深300指数
print("沪深300成分股权重示例(前5个):")
total_weight = 0
for stock, weight in list(weights.items())[:5]:
print(f"{stock}: {weight}%")
运行结果:
沪深300成分股权重示例(前5个):
000001.SZ: 0.549%
000002.SZ: 0.291%
000063.SZ: 0.494%
000100.SZ: 0.437%
000157.SZ: 0.172%
2.注意事项
2.1 数据更新建议
- 在每个交易日开始前更新一次板块和成分股数据
- 重要指数成分股调整生效日要提前更新数据
- 建议把数据更新操作加入策略的初始化流程中
2.2 使用要点
- 获取板块成分股时要先调用download_sector_data()下载数据
- 获取指数权重数据前要先调用download_index_weight()
- 权重数据的使用要注意新股上市、停牌等特殊情况的处理
- 建议对获取的数据进行缓存,避免频繁调用接口
2.3 常见问题处理
- 如果板块名称不存在,get_stock_list_in_sector会返回空列表
- 新股上市后如需立即使用,要及时更新板块数据
- 成分股权重数据可能有1-2天的延迟,要在策略中预留处理机制
开通miniQMT
如果你还没有开通miniQMT,可以点击此处开通,低费率、低门槛,欢迎咨询。
开发日志
我正在紧锣密鼓地开发系统,完善功能,点击此处了解最新进展。