【迅投 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/7/21 14:49:57 阅读更多 →
STM32游戏机外壳3D打印:从SolidWorks设计到精准装配全流程指南

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

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

2026/7/21 14:49:57 阅读更多 →
终极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/7/21 14:49:57 阅读更多 →

最新新闻

PyTorch深度学习框架核心技术与实战指南

PyTorch深度学习框架核心技术与实战指南

1. PyTorch框架概述与核心优势PyTorch作为当前最流行的开源深度学习框架之一,已经成为了学术界和工业界的首选工具。我第一次接触PyTorch是在2017年,当时它刚刚发布1.0版本,相比其他框架,最吸引我的是它直观的Pythonic编程风格和动…

2026/7/21 20:23:03 阅读更多 →
10分钟搭建专属3D流程图工具:FossFLOW容器化实战指南

10分钟搭建专属3D流程图工具:FossFLOW容器化实战指南

10分钟搭建专属3D流程图工具:FossFLOW容器化实战指南 【免费下载链接】FossFLOW Make beautiful isometric infrastructure diagrams 项目地址: https://gitcode.com/GitHub_Trending/openflow1/FossFLOW 你是否厌倦了那些复杂难用的流程图工具?想…

2026/7/21 20:23:03 阅读更多 →
mimalloc内存分配器终极指南:高性能内存管理的3个核心技巧

mimalloc内存分配器终极指南:高性能内存管理的3个核心技巧

mimalloc内存分配器终极指南:高性能内存管理的3个核心技巧 【免费下载链接】mimalloc mimalloc is a compact general purpose allocator with excellent performance. 项目地址: https://gitcode.com/GitHub_Trending/mi/mimalloc mimalloc(发音…

2026/7/21 20:23:03 阅读更多 →
基于STM32的光伏发电量检测系统:从ADC采样到功率积分的完整实现

基于STM32的光伏发电量检测系统:从ADC采样到功率积分的完整实现

这次我们来看一个基于STM32F103C8T6的光伏板发电量检测系统设计。对于从事嵌入式开发、新能源监测或者毕业设计的同学来说,这是一个非常经典且实用的项目。它不涉及复杂的AI模型部署,核心在于如何利用一块性价比极高的MCU,搭建一套能够实时采…

2026/7/21 20:23:03 阅读更多 →
写小说哪个软件好用?10款AI写小说工具深度测评(2026最新)

写小说哪个软件好用?10款AI写小说工具深度测评(2026最新)

现在大环境变了,ai火速渗透网文写作的全流程。兼职写小说两年,我多少也积攒了一些经验,如果纯靠自己敲键盘,效率跟不上不说,身体也容易吃不消。合理利用工具辅助,其实是个很现实的选择。市面上的辅助软件不…

2026/7/21 20:23:03 阅读更多 →
PLC工程师如何突破指令思维提升工业自动化技能

PLC工程师如何突破指令思维提升工业自动化技能

1. 为什么PLC工程师需要突破指令思维? 在工业自动化领域摸爬滚打十几年,我见过太多同行把90%的精力耗在记忆PLC指令和调试梯形图上。刚入行时我也如此——直到有次看到同事用1/10的时间完成了更复杂的产线控制,才意识到:死磕指令就…

2026/7/21 20:22:03 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻