日期 2024/8/2
意外发现的,抛砖引玉,测试了下,其他券商的也可以。
可以直接获取 1m 5m 1day 级别的数据,全A股市场的都可以。期货未测试。
需要 其他的级别的分数数据可以自行合成。
原理
券商版qmt获取行情数据时,不需要登陆带qmt权限的账户,即可下载和订阅数据
完整操作如下:
-
下载安装任意券商版qmt,我这里以 国投证券 举例。
下载链接 https://www.essence.com.cn/download?type=1
-
以脱机模式启动 大QMT,然后去设置里面下载python库
脱机登录
下载python库
下载python库完成后,关掉QMT,然后寻找 xtquant 库,并复制出来
-
把 xtquant 复制到任意一个目录,写python代码进行测试,注意 xtquant 暂时只支持 python3.11 及更老的,不支持新的 python 3.12
-
启动 miniquote.exe ,这是数据订阅和推送的程序,可以直接双击启动
任务管理器可以看到启动后的程序,没有界面。
-
把以下代码写入 try_get_all_5m_kline.py ,然后保存
from xtquant import xtdatadef 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 dfif __name__ == '__main__':df = get_kline()print('第一根5m k线', df.iloc[0])print('最新一根5m k线', df.iloc[-1])print('共获取 5m k线 数量', df.shape[0])
- 使用 python 运行,可以获得以下输出结果
- 结束,其他请自行研究。也可以订阅每日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
附加4:对一般人来说,开qmt时,要问是否能小资金ETF免5,ETF不免5就非常坑爹,不如用 easytrader+低佣账号。
附加5:股票免五门槛,好像全部券商最低都要50w,另一种十分坑爹。