别再手动下载数据了!这份miniqmt多线程+增量更新源码让你躺着一键更新K线

0 阅读4分钟

年后第一更,解决粉丝朋友遇到的小问题。

痛点:QMT下载数据为什么让人抓狂?

用过miniQMT的朋友肯定遇到过这几个场景:

  • 下载全市场K线,跑了一夜发现中途断连,白干
  • 财务数据下了半天,回测时发现缺这缺那(约数据源问题)
  • 想增量更新,结果API不按套路出牌,重复下载几小时
  • 各种同功能函数中选哪个?数据下载莫名卡死,哪出问题不知道。出问题不知道哪只股票失败,排查靠猜

这些问题我都踩过。后来实在受不了,自己写了一套多进程+增量下载的脚本,现在全市场数据从一天压缩到10分钟,每天自动跑,稳如老狗。

核心解法:多进程分组 + 增量更新

直接上干货,只讲关键的代码片段,帮助 大家快速上手。

1. 全市场股票列表的正确获取

client = xtdata.get_client()
client.down_all_sector_data()                     # 必须先下载板块元数据
stock_list = xtdata.get_stock_list_in_sector('沪深A股')

很多人忘了down_all_sector_data(),导致列表为空。这一步是前置依赖,必须执行。

2. 分组多进程,并行下载

size = 500
stock_groups = [stock_list[i:i+size] for i in range(0, len(stock_list), size)]

process_list = []
for group in stock_groups:
    p = Process(target=download_stock_group, args=(group, '1d'))
    p.start()
    process_list.append(p)

每组500只,实测平衡了效率和稳定性。每个子进程独立下载,互不干扰。

3. 子进程核心:财务+K线增量更新

def download_stock_group(stock_group, period='1d'):
    # 财务数据一次性传入列表,效率最高
    xtdata.download_financial_data2(stock_group, table_list=[], start_time='', end_time='', callback=None)
    
    for stock_code in stock_group:
        # 关键参数 incrementally=True 实现增量下载
        xtdata.download_history_data(stock_code, period=period, 
                                     start_time='19900101', incrementally=True)

财务数据:用download_financial_data2批量下载,比循环单只快几十倍。table_list=[]表示下载所有表,start_timeend_time留空自动更新最新。

K线数据incrementally=True会自动对比本地已有数据,只下载缺失部分。配合start_time='19900101'确保从最早开始,但实际只会补新数据。

4. 日志监控,失败一目了然

脚本配置了完善的日志,记录每只股票的下载状态和耗时:

2025-02-18 10:23:45 [Process-3] 下载成功: 000001.SZ
2025-02-18 10:23:46 [Process-3] 下载失败: 000002.SZ - 网络超时(假设)

我从没遇到过,如果你遇到,这样你就能精准重跑失败个股,不用全量再来。

实测效果

沪深A股约5000只,K线全量下载:

提速约60倍以上,节约您宝贵的时间(生命)。

使用注意

  • 确保miniQMT已登录,xtdata版本最新
  • 网络带宽足够,电脑配置高,可增加线程数,每组数量可同步减少,以更快速度完成下载。
  • 下载函数不要替换,或遇莫名卡死,这是qmt的老坑。增量更新或依赖本地文件时间戳,勿手动修改数据文件

这套脚本我已经用了半年,每天自动更新,再没出过问题。数据是量化的根基,把这个脏活自动化,才能专注策略。


🎁 源码获取

想获取完整脚本(含异常重试、断点续传、日志轮转等增强功能)?请关注下方公众号,后台回复“miniqmt数据下载”,即可获得可直接运行的源码文件。

公众号:[量化学习实战笔记]
[[传送🚪](https://mp.weixin.qq.com/s/L7cHEVeA-GufvroiNS7hpA)]

关键词:miniqmt数据下载

下期预告:基于miniqmt市场宽度全景图(含大、小盘、搅屎棍指数)

免责声明:本账号所有量化策略和量化技术仅作技术交流和量化思路分享,不构成任何投资建议,据此操作风险自负,本人不承担任何直接或间接责任。