免账户免权限免费获取 A股 全市场股票ETF指数 tick和分钟数据

日期 2025/2/23
已部分失效,目前已无法获取超过1年前的 1m 5m 数据。已下载的不受影响。
是云端限制,之前能获取全部数据,估计是bug。现在被修复了。
已无法获取过期期货数据

日期 2024/9/3
已测试可直接获取期货数据
期货只能获取最近一年的数据

日期 2024/8/2
意外发现的,抛砖引玉,测试了下,其他券商的也可以。
可以直接获取 1m 5m 1day 级别的数据,全A股市场的都可以
需要 其他的级别的分数数据可以自行合成。

原理

券商版qmt获取行情数据时,不需要登陆带qmt权限的账户,即可下载和订阅数据

完整操作如下:

  1. 下载安装任意券商版qmt,我这里以 国投证券 举例。
    下载链接 https://www.essence.com.cn/download?type=1

  2. 以脱机模式启动 大QMT,然后去设置里面下载python库

脱机登录

下载python库

下载python库完成后,关掉QMT,然后寻找 xtquant 库,并复制出来

  1. 把 xtquant 复制到任意一个目录,写python代码进行测试,注意 xtquant 暂时只支持 python3.11 及更老的,不支持新的 python 3.12

  2. 启动 miniquote.exe ,这是数据订阅和推送的程序,可以直接双击启动

任务管理器可以看到启动后的程序,没有界面。

  1. 把以下代码写入 try_get_all_5m_kline.py ,然后保存
from xtquant import xtdata


def get_kline(stock='600000.SH', period='5m', dividend_type='front_ratio',
              field_list=('time', 'open', 'high', 'low', 'close', 'volume'),
              start_time='', end_time='', count=-1,
              fill_data=True, download_data=True):

    if download_data:
        xtdata.download_history_data2(
            [stock],
            period
        )

    # r = xtdata.get_local_data(
    r = xtdata.get_market_data_ex(
        list(field_list),
        [stock],
        period=period,
        count=count,
        dividend_type=dividend_type,
        fill_data=fill_data,
        start_time=start_time,
        end_time=end_time,
    )

    df = r[stock]
    return df


if __name__ == '__main__':
    df = get_kline()
    print('第一根5m k线', df.iloc[0])
    print('最新一根5m k线', df.iloc[-1])
    print('共获取 5m k线 数量', df.shape[0])

  1. 使用 python 运行,可以获得以下输出结果

  2. 结束,其他请自行研究。也可以订阅每日tick,单推,全推数据,这些都行。

附加

附加1:有时下载数据时,会突然变得很慢,可以直接任务管理器结束掉 miniquote.exe ,再启动它

附加2:各家券商 QMT 名字一览(不全)
https://www.xuntou.net/forum.php?mod=viewthread&tid=232

附加3:其他证券的 QMT 下载链接
国金qmt实盘
https://download.gjzq.com.cn/gjty/organ/gjzqqmt.rar
国金qmt模拟
https://download.gjzq.com.cn/temp/organ/gjzqqmt_ceshi.rar

posted @ 2025-01-10 16:55  ONE_SIX_MIX  阅读(592)  评论(0)    收藏  举报