AI股票小助手04-miniQMT数据采集

by 雪隐 from juejin.cn/user/143341...

欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可联系授权。

前言

朋友们,今天咱们来聊第三种股票数据获取方式------miniQMT

它不是那种"今天能连明天就挂"的免费接口,而是最稳如老狗的实时数据方案。不光能拿数据,还能直接下场交易。如果你想搞个人量化交易,有没有 miniQMT 权限,基本等于"有驾照"和"没驾照"的区别。

不过,这玩意儿有门槛------你得跟你的券商客户经理软磨硬泡 。很多券商(比如国金)要求账户里躺着 30 万 才能开。而且不是所有券商都支持这个功能。

一句话:开不了 miniQMT,本章内容你就当看玄幻小说吧。

本文用 宁德时代(300750.SZ 当案例,带你跑通三种数据下载:

  1. 日线数据(历史 K 线)
  2. 分钟数据(1 分钟、5 分钟等)
  3. 财务数据(资产负债表、利润表、每股指标......)

前提条件

  • windows环境
  • QMT 已安装,xtquant 库已配好
  • miniQMT 客户端已启动(且你能登录进去)

一、什么是 miniQMT?

简单说,它是 QMT 的"极简模式"------不给你花里胡哨的界面,只留一个 Python 接口。你写代码调它,它帮你搞定数据、下单、回测。

就像把自动驾驶汽车的方向盘拆了,只留一个游戏手柄给你:功能都在,姿势更自由。


二、开通流程(社恐劝退版)

  1. 找到一家支持 miniQMT 的券商(网上搜一下,或者直接问客服:"你家支持 miniQMT 不?")
  2. 开户------如果你名下已经有 3 家券商账户,得先注销一家(证监会规定,别问我为什么)。
  3. 等几个工作日,账户开好后,主动打电话问:"我有没有专属客户经理?"
  4. 加上客户经理微信,开门见山 :"我要开通 miniQMT。"
    • 他会告诉你资金要求(比如 30 万),但这个可以谈。你表现得像个长期用户,他也不想丢单。
  5. 谈妥后,填表、走流程,再等 4-5 个工作日。
  6. 客服给你 QMT 客户端下载链接 + 账号密码,登录成功的那一刻,你就算踏入量化大门了。

整个过程考验耐心,但一旦开通,你就拥有了一个 比任何免费接口都靠谱的数据武器


三、日线数据下载(历史 K 线,养老级数据)

python 复制代码
STOCK_CODE = '300750.SZ'   # 宁德时代
DATA_START = '20240101'    # 从 2024 年开始
DATA_END   = '20251231'    # 到 2025 年结束

① 下载历史数据

python 复制代码
xtdata.download_history_data(
    stock_code=STOCK_CODE,
    period='1d',            # 1d 表示日线
    start_time=DATA_START
)

② 获取市场数据

python 复制代码
res = xtdata.get_market_data(
    stock_list=[STOCK_CODE],
    period='1d',
    start_time=DATA_START,
    end_time='',
    count=-1,               # -1 表示取全部
    dividend_type='front',  # 前复权(不然算出来想哭)
    fill_data=True
)

返回字段:closeopenhighlowvolume ------ 炒股五件套。

③ 处理时间

QMT 给的时间是 20240101 这种"直男格式",需要转成人类能看懂的日期:

python 复制代码
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d', errors='coerce')

保存到 data/300750_SZ_daily_QMT.csv,搞定。


四、分钟数据下载(想玩高频?先问问你的心脏)

python 复制代码
STOCK_CODE  = '300750.SZ'
TARGET_DATE = '20260210'   # 你想看哪一天的分钟线
PERIOD      = '1m'         # 1分钟 K 线(可选:5m, 15m, 30m, 60m)

① 下载分钟数据

python 复制代码
xtdata.download_history_data(
    stock_code=STOCK_CODE,
    period=PERIOD,
    start_time=TARGET_DATE
)

② 取数据时,把 end_time 设成 下一天,这样能保证拿到全天数据

python 复制代码
res = xtdata.get_market_data(
    stock_list=[STOCK_CODE],
    period=PERIOD,
    start_time=TARGET_DATE,
    end_time='20260211',    # 下一天,老司机都懂
    count=-1,
    fill_data=False
)

③ 时间格式转换

分钟数据的时间戳长成这样:20260210143000 → 需要转成 pd.datetime

python 复制代码
df['datetime'] = pd.to_datetime(df['datetime'].astype(str), format='%Y%m%d%H%M%S', errors='coerce')

④ 只保留目标日期的数据

python 复制代码
target_date_dt = pd.Timestamp(TARGET_DATE)
df = df[df['datetime'].dt.date == target_date_dt.date()]

保存到 data/300750_SZ_1min_QMT.csv

忠告:分钟数据量很大,别一次性下十年,硬盘会哭。


五、财务数据下载(看公司底裤)

财务数据不像 K 线那么"实时",但它是价值投资者的圣经。我们下载以下几张表:

表名 含义
Balance 资产负债表(公司家底)
Income 利润表(赚了多少钱)
CashFlow 现金流量表(真金白银流向)
PershareIndex 每股指标(EPS、每股净资产等)
Capital 股本信息(总股本、流通股)

① 异步下载(带回调,让你知道它在干活)

python 复制代码
done_count = [0]
total_tables = len(TABLE_LIST)

def on_download_done(data):
    done_count[0] += 1
    print(f"已下载 {done_count[0]}/{total_tables} 张报表")

for table_name in TABLE_LIST:
    xtdata.download_financial_data2(
        stock_list=[STOCK_CODE],
        table_list=[table_name],
        callback=on_download_done
    )

② 获取财务数据

python 复制代码
data = xtdata.get_financial_data(
    stock_list=[STOCK_CODE],
    table_list=TABLE_LIST,
    report_type='report_time'
)

③ 从中提取关键指标(这里才是精华)

类别 指标
每股指标 EPS(每股收益)、BPS(每股净资产)、OCFPS(每股经营现金流)
盈利能力 ROE(净资产收益率)、ROA(资产报酬率)、毛利率、净利率
偿债能力 资产负债率、流动比率、速动比率
营运能力 总资产周转率
现金流 经营现金流、经营现金流/收入

④ 时间标签处理(防坑代码)

xtquant 返回的时间可能是 20250331 字符串,也可能是个时间戳数字。写个函数统一成 YYYYMMDD:

python 复制代码
def normalize_timetag(ts_val):
    s = str(ts_val).strip()
    if len(s) == 8 and s.isdigit():
        return s
    v = float(s)
    if v > 1e12:
        v = v / 1000
    return datetime.fromtimestamp(v).strftime('%Y%m%d')

保存到 data/300750_SZ_fina_QMT.csv

有了这些数据,你就可以自己算 PE、PB、ROE,再也不用去雪球看别人脸色了。


六、输出文件一览

脚本功能 输出文件
日线数据 data/300750_SZ_daily_QMT.csv
分钟数据 data/300750_SZ_1min_QMT.csv
财务数据 data/300750_SZ_fina_QMT.csv

七、QMT 股票代码格式(老手跳过,新手必看)

交易所 格式 示例
上海 XXXXXX.SH 600519.SH(贵州茅台)
深圳 XXXXXX.SZ 300750.SZ(宁德时代)

千万别把 .SH 写成 .SZ,否则你会收到一堆莫名其妙的空数据。


完整代码

由于篇幅原因,本文只做思路讲解。

完整代码已上传 Gitee ,去仓库自取就行。


写在最后

如果这篇文章让你从"miniQMT 是什么鬼"变成了"好像我也能试试",那就给我点个 、留个评论 吧。

量化交易这条路,孤独且容易踩坑,有个伴儿总归好一点。

最后一句大实话

不要指望有了 miniQMT 就能一夜暴富。

它只是给你一把更快的刀,但砍柴的功夫还得自己练。

谢谢大家 🙏

祝各位的曲线像长江电力一样平稳向上,不要像我的心情一样大起大落。

相关推荐
唐青枫几秒前
别只会写 fn:Zig 函数、错误处理、泛型与回调实战
后端
Rain的Java大神之路3 分钟前
Docker搭建Redis集群完全指南
java·运维·redis·后端·docker·容器·架构
空堂与归5 分钟前
单机 Python 跑不动?Ray 分布式计算框架让 AI 训练提速 10 倍
开发语言·人工智能·python
码农飞哥6 分钟前
RAG 翻车实测 + LangGraph Agent 实时抓取修复
人工智能·爬虫·langchain·ai编程·亮数据
传说故事9 分钟前
【论文阅读】Whole-Body Conditioned Egocentric Video Prediction
论文阅读·人工智能·生成模型
Raas10010 分钟前
大模型网关和API网关区别是什么?MAI Gateway统一AI流量治理
java·大数据·运维·人工智能·gateway·企业级·ai网关
jj_ccwgw14 分钟前
Kafka KRaft 多机集群安装指南
后端
Lab_AI16 分钟前
从代理到自研,从工具到平台:创腾科技的AI for Science破局之路
人工智能·ai·ai for science·ai4s·ai+材料创新·ai+药物发现·ai+药物研发
YOLO数据集集合16 分钟前
无人机检测与追踪数据集 | 无人机检测 反无人机 低空安防 目标追踪 YOLO格式9010期
人工智能·yolo·目标检测·计算机视觉·无人机·无人机检测
SL-staff17 分钟前
APS排产规则底座实践:如何用生产全局配置统一自动拆分、成批基数与齐套策略
大数据·数据库·人工智能·智能制造·aps·mes·排产规则