miniQMT行情获取攻略,精选完整版.
QMT量化交易软件是目前市场上成熟的主流量化交易软件之一,也是大部分量化交易投资者的首选量化交易软件,是集行情显示、策略研究、交易执行和风控管理于一体的综合投研交易平台,主要为国内量化私募、量化爱好者、个人高净值客户、交易活跃的投资者群体研发提供使用的。
量化交易之前主要是国内公募基金、国内私募基金、国内机构投资者、国内私募投资者、国内游资投资者、国内高净值投资者使用;近几年部分证券公司已对散户开放和提供服务了。
miniQMT属于QMT的极简版本,并不是提供QMT的券商都具备有miniQMT的系统,只有其中少数的券商才能提供的。miniQMT相对于QMT来说,可编程的能力是相对更强的,可以使用Python包的形式提供API,那就可以跟任何Python程序相结合,而不受客户端和平台的限制,做出更多更具可能性的量化策略,miniQMT只提供数据源和交易接口。后续使用miniQMT就可以不用在QMT系统中进行策略代码的编写,可以通过讯投的xtquant包进行引入,从而miniQMT就可以在软件之外进行策略程序化的编写了。作为 QMT 的简化版,在保留核心功能的同时,更加简洁高效。
MiniQMT 是一款专为量化交易设计的免费软件,作为 QMT 的简化版,在保留核心功能的同时,更加简洁高效。另外,MiniQMT可支持C++ 语言。适合预算有限的个人投资者、量化交易初学者以及对软件简洁性有要求的投资者。
1、功能优势:极简模式:以简洁高效为设计理念,去除了复杂的设置和操作界面,使用户能够快速上手。对于初学者或者不需要过于复杂功能的投资者来说,MiniQMT 的极简模式可以让他们更加专注于策略的核心部分,减少学习成本和操作难度。
2、本地运行:支持在本地运行策略代码,数据的安全性和隐私性更高。用户无需担心数据外泄,同时也可以在本地进行策略的调试和优化,不受网络环境的影响。
3、灵活定制:相比标准 QMT,MiniQMT 在操作和功能上更加灵活,便于用户进行个性化设置和策略调整。用户可以根据自己的投资目标和风险偏好,定制适合自己的量化交易策略。
4、数据资源优质:提供高质量的行情数据,包括实时数据和历史数据,为交易策略的制定和回测提供了有力的支持。用户无需额外付费获取专业数据源,降低了使用成本。
miniQMT量化交易软件,投资者可以在某证券公司开通证券账户后,申请办理开通QMT,同步开通miniQMT量化权限,然后就可以实盘量化交易;同时,也可以申请开通测试账户,先在测试环境里面验证量化策略。
很多投资者在使用miniQMT量化获取行情数据时,总会遇到较多问题,本文介绍和演示,希望能给大家解惑。
miniQMT获取行情数据最常用的接口主要有两个:
lget_market_data_ex:从缓存获取行情数据,是主动获取行情的主要接口
lget_local_data:从本地数据文件获取行情数据,用于快速批量获取历史部分的行情数据
1. 直接通过get_market_data_ex和get_local_data获取数据
先说结论:无论是用get_market_data_ex 还是 get_local_data,在当前环境下我都只能拿到 9月11日的数据。
很多朋友经常反馈说:获取不到最新的行情;或者数据直接是空的。
根本原因其实很简单:本地 QMT 的缓存或者本地数据文件里,压根就没有最新的行情,甚至没有你要的那只股票的数据。
那么问题来了:我们到底该怎么才能获取到最新的行情数据呢?别急,继续往下看。
get_market_data_ex示例,只能拿到 9月11日的数据,内容如下:
et_local_data示例,只能拿到 9月11日的数据,内容如下:
2.订阅全推行情
有人可能会说:那用订阅全推行情不就能拿到最新数据了吗?
我也专门测试了一下:通过subscribe_whole_quote 订阅了深证市场全部股票的行情,然后再用 get_market_data_ex 和 get_local_data 去取。
结果很意外——拿到的依然还是9月11日的数据,依旧没有 9月16日的最新行情。这就说明一个问题:光订阅全推行情,并不会让 QMT 的缓存或者本地数据文件更新。订阅全推行情,通过get_market_data_ex获取行情示例行情数据只能拿到9月11日的,结果如下:
订阅全推行情,通过get_local_data获取行情示例行情数据只能拿到9月11日的,如下所示:
那订阅全推行情怎么用?订阅全推行情数据以后,从callback函数里取最新的行情,数据类型为分笔数据,示例如下:
返回值是分比数据,但是里面的askPrice多档委卖价,bidPrice多档委买价是没有数据的。
3.订阅单股行情
用subscribe_quote2 来订阅单只股票的 5 根日线行情,并通过回调函数把收到的行情数据打印出来。
这里有个细节一定要注意:当订阅的数据返回后,它会先进入本地缓存。
这意味着什么?
你能在回调里看到最新的数据;但如果你随后直接;
用get_market_data_ex 或 get_local_data 去取,就能拿到比较新的行情数据了。如图所示:
返回值如下:
通过get_local_data和get_market_data_ex获取到了16号的数据。如下所示:
4.下载行情数据
最后,我又测试了download_history_data2 接口。 它的作用很直接:主动下载指定标的的历史行情数据。
和前面几种方式不同,这里有个关键点:调用download_history_data2 之后,不仅会把最新的日线数据拉下来,还会同步更新 QMT 的缓存和本地数据文件。
这样一来,无论你再用get_market_data_ex 还是 get_local_data,都能顺利拿到最新的行情数据了。
通过download_history_data2下载行情:
通过get_local_data和get_market_data_ex获取到了16号的数据:
总结:订阅拿实时,下载补历史,查询靠缓存。
miniQMT 获取行情数据,最容易踩坑的地方就在于:接口不等于最新数据。核心逻辑其实很简单:
(1)get_market_data_ex / get_local_data依赖缓存和本地文件,如果没有最新行情,就只能拿到旧数据。
(2)订阅全推行情(subscribe_whole_quote)拿到的是实时分笔流,但不会自动更新缓存和本地文件。
(3)订阅单股行情(subscribe_quote2)可以拿到最新的日线数据,并会写入缓存,从而影响 get_market_data_ex / get_local_data 的结果。
(4)主动下载(download_history_data2)最稳妥的方式,直接拉取并同步更新缓存和本地文件,保证后续查询一定有最新数据。
所以,如果你只是被动查询,很容易遇到“数据不更新”的情况。要想确保拿到最新行情,最可靠的办法就是:
l日线、分钟线等历史数据→ 用 download_history_data2 主动拉取;
l实时流数据→ 用订阅接口(subscribe_quote2 或 subscribe_whole_quote)直接从回调里取。
QMT、miniQMT、PTrade量化交易软件,可以线上低门槛、免费开通、免费使用。
欢迎点赞、转发、留言!