【迅投 QMT】QMT如何下载并读取历史K线数据?完整教程
本方案由EasyQuant AI量化助手提供。如有更多问题直接用EasyQuant AI量化助手帮您快速解决量化交易编程难题。问题背景QMT 中的历史行情通常需要先下载到 MiniQMT 本地再通过xtdata接口读取。很多用户直接调用数据读取函数后发现返回为空常见原因就是本地尚未下载对应股票、周期或日期范围的数据。实现思路完整流程分为四步导入xtquant.xtdata调用download_history_data()下载指定标的和周期调用get_market_data_ex()读取本地历史 K 线对 DataFrame 数据进行均线计算和信号判断。QMT 的基础行情周期包括tick、1m、5m、1d等合成周期通常依赖基础周期数据。例如需要历史 15 分钟线时应先确保 5 分钟基础数据可用。(迅投行情函数说明)完整代码示例from xtquant import xtdata import pandas as pd # 股票代码平安银行 STOCK_CODE 000001.SZ # 读取日线数据 PERIOD 1d # 历史区间 START_TIME 20240101 END_TIME 20241231 def download_kline_data(): 下载历史K线至MiniQMT本地缓存。 首次运行或本地数据不足时执行。 xtdata.download_history_data( stock_codeSTOCK_CODE, periodPERIOD, start_timeSTART_TIME, end_timeEND_TIME ) print(历史数据下载请求已提交, STOCK_CODE, PERIOD) def get_kline_data(): 从本地缓存读取历史K线。 返回结果通常是{股票代码: DataFrame}。 market_data xtdata.get_market_data_ex( field_list[ time, open, high, low, close, volume, amount ], stock_list[STOCK_CODE], periodPERIOD, start_timeSTART_TIME, end_timeEND_TIME, count-1, dividend_typefront, fill_dataFalse ) if STOCK_CODE not in market_data: print(未读取到数据请检查代码、周期和本地下载状态) return None kline_df market_data[STOCK_CODE] if kline_df is None or kline_df.empty: print(K线数据为空) return None return kline_df def calculate_ma_signal(kline_df): 计算5日、20日均线并识别最近一次金叉或死叉。 df kline_df.copy() # 确保close列为数值类型 df[close] pd.to_numeric(df[close]) # 计算均线 df[ma5] df[close].rolling(window5).mean() df[ma20] df[close].rolling(window20).mean() # 删除均线尚未形成的行 df df.dropna().reset_index(dropTrue) if len(df) 2: print(有效数据不足无法判断均线交叉) return df last_row df.iloc[-1] prev_row df.iloc[-2] buy_signal ( last_row[ma5] last_row[ma20] and prev_row[ma5] prev_row[ma20] ) sell_signal ( last_row[ma5] last_row[ma20] and prev_row[ma5] prev_row[ma20] ) print(最新收盘价, round(last_row[close], 2)) print(MA5, round(last_row[ma5], 2)) print(MA20, round(last_row[ma20], 2)) if buy_signal: print(信号结果MA5 上穿 MA20出现均线金叉) elif sell_signal: print(信号结果MA5 下穿 MA20出现均线死叉) else: print(信号结果当前无新的均线交叉) return df if __name__ __main__: # 第一步下载历史数据 download_kline_data() # 第二步读取本地历史数据 kline_data get_kline_data() # 第三步计算指标与交易信号 if kline_data is not None: result_df calculate_ma_signal(kline_data) # 查看最近10根K线及均线结果 print(result_df.tail(10))注意事项QMT 股票代码格式为代码.市场例如000001.SZ、600000.SH。download_history_data()负责补充本地数据读取前应确认 MiniQMT 已连接且行情权限正常。count-1表示读取满足条件的全部本地数据数据量较大时应限制时间范围。前复权、后复权或不复权会影响价格序列策略回测和实盘计算应保持一致。下载历史数据与订阅实时数据是两套流程历史部分通常先下载实时部分可通过订阅接口获取。(迅投 XtData 文档)总结QMT 获取历史 K 线的关键是“先下载、再读取”。掌握download_history_data()和get_market_data_ex()后就可以继续扩展到多股票数据、分钟线指标计算、回测数据准备和实时策略开发。本方案由EasyQuant AI量化助手提供。

相关新闻

3分钟上手DyberPet:打造你的专属桌面宠物伙伴终极指南

3分钟上手DyberPet:打造你的专属桌面宠物伙伴终极指南

3分钟上手DyberPet:打造你的专属桌面宠物伙伴终极指南 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否希望有一个可爱的数字伙伴陪伴你的工作学习?D…

2026/11/1 22:23:15 阅读更多 →
STM32游戏机外壳3D打印:从SolidWorks设计到精准装配全流程指南

STM32游戏机外壳3D打印:从SolidWorks设计到精准装配全流程指南

这次我们来看一个嵌入式开发者、创客和硬件爱好者都会遇到的经典问题:如何为自制的STM32游戏机设计并3D打印一个完美贴合的外壳。很多朋友在SolidWorks里精心设计,模型看起来严丝合缝,但一拿到3D打印机打出来,要么是板子塞不进去&…

2026/11/6 9:39:37 阅读更多 →
终极Discord Bot客户端:深度解析机器人身份的全新交互体验

终极Discord Bot客户端:深度解析机器人身份的全新交互体验

终极Discord Bot客户端:深度解析机器人身份的全新交互体验 【免费下载链接】DiscordBotClient A patched version of discord, with bot login & Vencord support 项目地址: https://gitcode.com/gh_mirrors/di/DiscordBotClient 在Discord生态系统中&am…

2026/11/1 10:47:56 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/8 1:19:03 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/7 12:08:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/8 1:35:05 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/8 1:38:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/7 12:08:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/8 1:23:14 阅读更多 →

日新闻

周新闻

月新闻