3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
load_stk_list 快速导入 TXT/CSV 股票篮子在 QMT(迅投量化系统)中,为了实现灵活的股票池管理与自动化选股,开发者往往需要从外部文件(如本地选股软件生成的 TXT 或 CSV 文件)中读取股票列表,并将其设置为策略的运行股票池。
本文将详细介绍如何使用 QMT Python API 中的 ContextInfo.load_stk_list() 与 ContextInfo.load_stk_vol_list() 接口,实现外部股票篮子的快速导入与动态更新。
ContextInfo.load_stk_list()用途:从本地文本或 CSV 文件中加载一篮子证券代码,用于构建自定义股票池。
语法:
ContextInfo.load_stk_list(filePath, fileName)
参数说明:
filePath (str):文件存放的绝对路径(如 'D:/data/')。fileName (str):文件名(如 'list.txt' 或 'list.csv')。文件格式要求:
600000.SH,600004.SH,600006.SH,(最后一个字段末尾必须包含分隔符 ,)。600000.SH,600004.SH,600006.SH,(同样末尾需带分隔符)。ContextInfo.load_stk_vol_list()用途:获取一篮子证券编码及对应的目标交易数量。
语法:
ContextInfo.load_stk_vol_list(filePath, fileName)
文件格式要求:
600000.SH,100,600004.SH,200,以下示例展示了如何在策略初始化 (init) 时从本地导入 TXT 股票列表,并使用 set_universe 动态更新股票池:
#encoding:gbk
def init(ContextInfo):
# 设定本地股票篮子文件路径与文件名
file_path = 'D:/data/'
file_name = 'stk_pool.txt'
# 1. 读取外部证券代码列表
stk_list = ContextInfo.load_stk_list(file_path, file_name)
print("成功加载本地股票篮子:", stk_list)
# 2. 将读取到的股票列表设置为当前策略的 Universe(股票池)
if stk_list:
ContextInfo.set_universe(stk_list)
print("当前策略股票池已更新,包含标的数量:", len(stk_list))
else:
print("股票篮子加载为空,请检查文件路径与格式!")
def handlebar(ContextInfo):
# 获取当前股票池
universe = ContextInfo.get_universe()
print(f"[Barpos: {ContextInfo.barpos}] 当前运行股票池:", universe)
# 可以在此处编写基于股票池的轮动或下单逻辑
, 分隔符,否则最后一个股票代码可能无法被正确解析。.SH 代表上交所,.SZ 代表深交所),例如 600000.SH。/(例如 'D:/data/')或转义反斜杠 \\,避免出现路径解析报错。