🚀 AI 一键生成 qmt 策略代码
立即体验
👉 AI 生成代码 👈

QMT 平台“我的自选”股票导入指南

qmt | 发布时间: 2026/6/3
以下内容由 EasyQuant 生成。

问题描述

QMT“我的自选”无法导入股票吗?

目前只能右键加入我的自选股,自选股都是在本地的,不能同步云端。只能逐个加入自选股,不支持文件导入自选股。

解决方案

在 QMT 平台的客户端界面中,目前确实存在“我的自选”板块只能通过右键逐个添加,且数据保存在本地无法同步云端,也不支持直接通过文件导入到界面“我的自选”板块的限制。

但是,如果您是为了在量化策略中使用自定义的股票列表,QMT 提供了非常方便的 Python API 来实现这一需求。您完全不需要依赖界面上的“我的自选”板块,而是可以通过读取本地文件的方式,动态地将股票导入到策略的股票池中。

解决方案:使用 Python API 导入自定义股票池

QMT 提供了 ContextInfo.load_stk_list()ContextInfo.load_stk_vol_list() 函数,允许您从本地的 txt 或 csv 文件中读取一篮子股票代码,并将其设置为策略的股票池。

1. 准备股票列表文件

首先,在您的本地电脑上创建一个文本文件(例如 my_stocks.txt)或 CSV 文件(例如 my_stocks.csv)。

文件格式要求:

  • txt 文件: 600000.SH,600004.SH,600006.SH,600000.SH600004.SH600006.SH(注意:最后一个代码后也需要有分隔符)。
  • csv 文件: 600000.SH,600004.SH,600006.SH,(同样,最后一个代码后需要分隔符)。

2. 在策略中读取文件并设置股票池

在您的 Python 策略代码中,使用 ContextInfo.load_stk_list() 读取该文件,并使用 ContextInfo.set_universe() 将其设置为股票池。

#coding:gbk

def init(ContextInfo):
    # 假设您的股票列表文件存放在 D 盘 data 目录下,文件名为 my_stocks.txt
    file_path = 'D:/data/'
    file_name = 'my_stocks.txt'
    
    try:
        # 读取文件内容,返回的是包含股票代码的字符串
        stock_str = ContextInfo.load_stk_list(file_path, file_name)
        
        # 将字符串处理成列表
        # 假设文件内容是逗号分隔的:600000.SH,600004.SH,
        if stock_str:
            # 去除可能存在的空白字符,并按逗号分割
            stock_list = [s.strip() for s in stock_str.split(',') if s.strip()]
            
            # 设置为策略的股票池
            ContextInfo.set_universe(stock_list)
            print(f"成功导入股票池: {stock_list}")
        else:
            print("读取的股票列表为空")
            
    except Exception as e:
        print(f"读取股票列表文件失败: {e}")

def handlebar(ContextInfo):
    # 获取当前股票池
    universe = ContextInfo.get_universe()
    # 在这里编写您的策略逻辑
    pass

总结

虽然 QMT 客户端界面在“我的自选”管理上存在一定局限性,但通过其强大的 Python API,您可以轻松绕过这一限制,实现从本地文件批量导入股票并在量化策略中灵活使用的目的。这种方式不仅高效,而且便于您通过外部程序(如 Python 脚本)动态更新股票列表文件,从而实现更自动化的策略管理。