QMT iQuant miniQMT它们有什么区别?
QMT ,iQuant,miniQMT的区别
对于第一次接触的朋友来说,经常会问到几个问题,QMT和iQuant,miniQMT有什么区别。
首先,QMT和iQuant都是有迅投开发的。miniQMT是在QMT底下的运行的一个极简模式。
接下来将详细的讲讲。
QMT vs iQuant
一般券商采购了迅投的QMT,接入行情数据服务器和交易服务器,和用户资金账户,就可以让他成为自己的量化交易软件。
而iQuant是有国信定制开发的。iQuant它的大部分券商的QMT的功能基本一样。 不同的地方有:
iQuant移除了VBA模型
下图是国金QMT,在新建策略下面,有VBA模型和python模型
而在国信的iQuant的策略开发模式下,只支持python模型,VBA编写模型的功能被移除了。
对于VBA而言,实际是一门古老的语言,至少在互联网领域,已经没见过几个人在用的了。
不过我在查询了一下它的在QMT里面的实盘交易代码,其实它还是挺适合熟悉通达信公式的朋友使用,很多语法是从通达信的公式演变而来的。
iQuant支持投资研究,使用jupyter notebook逐行运行,为了便于调试。
而其他的QMT均没有这个功能。 不过这个功能我试了下,它只是调用我系统的jupyter notebook,而且它有严重的bug,居然运行不了任何代码。(ptrade也有个类似这样的功能,可以逐行调用内置的获取行情的函数,ptrade的是可以正常运行的)
少数券商的QMT无法在虚拟机运行
QMT可以在虚拟机运行,大部分券商的QMT可以在虚拟机里面运行,这也意味这可以云主机服务器运行,比如阿里云,腾讯云这种,在云服务器上网络和系统稳定性都要比你在家里放的主机要好,因为QMT需要一台正在运行的Windows系统,且网络畅通。
只有少数券商的QMT无法在虚拟机里面运行。
之前笔者粗略地对比了下QMT读取的系统信息,异同点字在于磁盘序列号,想要硬刚的读者朋友在可以尝试修改虚拟机的硬盘序列号。
在python编写策略的代码层面,QMT和iQuant的接口文档也基本一致的,可能在一些功能函数上会有些少出入。二者写的python代码可互相在彼此上运行。
QMT 与 miniQMT
miniQMT属于QMT的一个子功能,一个精简功能下的自动交易框架,只支持实盘交易,不支持回测。在miniQMT模式下,你的策略代码将不在固定在自带的那个QMT软件下编写,而是可以自由地使用pycharm,vscode等编辑器,运行的时候直接使用 python xxxx.py 这样的形式启动。
只是券商很少对它进行宣传,以至于用它的人不多。
进入miniQMT的方法: 点击QMT程序,登录时勾选极简模式
注意:极简模式下,需要一直保持者这个miniQMT的登录程序在运行,意味者miniQMT也只能在windows系统下运行。
XtQuant
miniQMT的核心是XtQuant,XtQuant能提供哪些服务?
XtQuant是基于迅投MiniQMT衍生出来的一套完善的Python策略运行框架,对外以Python库的形式提供策略交易所需要的行情和交易相关的API接口。
XtQuant运行依赖环境
XtQuant目前提供的库包括Python3.6、3.7、3.8版本,不同版本的python导入时会自动切换。根据群友反馈,最新的版本可以支持到python3.11。
在运行使用XtQuant的程序前需要先启动MiniQMT客户端。
然后把你的QMT目录下的\bin.x64\Lib\site-packages\xtquant复制到你系统python目录下的site-packages。
然后就可以在你的代码里面导入QMT的函数,包括获取行情数据,下单函数。
它的帮助文档在bin.x64\Lib\site-packages\xtquant\doc 目录下。
从它的帮助文档来看,它是一套和QMT接口函数完全不一样的交易框架。
所以QMT的代码,无法直接拷贝到miniQMT中使用。虽然名字叫miniQMT,但感觉它提供的很多函数功能,要比QMT更为丰富,用户可以掌控的流程更多,更灵活。
iQuant版虽然也有精简版的miniQMT,但它对个人用户不提供下单功能呢,只有获取行情数据,财务数据等的数据权限。
还有一个与之配套的xtdata库,是专门用来获取行情数据的,而xttrade是专门用来交易下单的。
因为xtdata可以获取很多股票,可转债,ETF等等历史数据,所以即使你不用miniQMT做交易,你也可以白嫖它的数据,这比用积分的tushare简直不要太爽。比如可以获取到股票或可转债的日线,分钟线,甚至tick数据。
比如下面的代码就可以获取 众信转债 的某个时间的历史tick数据,并保存到文件。 只要稍微改造下,就可以获取全市场的转债的tick数据。
把上面保存为main.py, 然后执行python main.py , 片刻就可以看到生成的文件数据了。
结语
为了便于读者快速浏览帮助文档,可以在公众号后台回复对应的关键词获取对应的帮助文档:
qmt文档
miniqmt文档
如果想要体验qmt或者miniqmt自动交易的朋友,可以后台回复:开通qmt
即可获取低门槛低费率的开通qmt/iQuant的券商开户方式。
知识星球:
对于第一次接触的朋友来说,经常会问到几个问题,QMT和iQuant,miniQMT有什么区别。
首先,QMT和iQuant都是有迅投开发的。miniQMT是在QMT底下的运行的一个极简模式。
接下来将详细的讲讲。
QMT vs iQuant
一般券商采购了迅投的QMT,接入行情数据服务器和交易服务器,和用户资金账户,就可以让他成为自己的量化交易软件。
而iQuant是有国信定制开发的。iQuant它的大部分券商的QMT的功能基本一样。 不同的地方有:
iQuant移除了VBA模型
下图是国金QMT,在新建策略下面,有VBA模型和python模型
而在国信的iQuant的策略开发模式下,只支持python模型,VBA编写模型的功能被移除了。
对于VBA而言,实际是一门古老的语言,至少在互联网领域,已经没见过几个人在用的了。
不过我在查询了一下它的在QMT里面的实盘交易代码,其实它还是挺适合熟悉通达信公式的朋友使用,很多语法是从通达信的公式演变而来的。
iQuant支持投资研究,使用jupyter notebook逐行运行,为了便于调试。
而其他的QMT均没有这个功能。 不过这个功能我试了下,它只是调用我系统的jupyter notebook,而且它有严重的bug,居然运行不了任何代码。(ptrade也有个类似这样的功能,可以逐行调用内置的获取行情的函数,ptrade的是可以正常运行的)
少数券商的QMT无法在虚拟机运行
QMT可以在虚拟机运行,大部分券商的QMT可以在虚拟机里面运行,这也意味这可以云主机服务器运行,比如阿里云,腾讯云这种,在云服务器上网络和系统稳定性都要比你在家里放的主机要好,因为QMT需要一台正在运行的Windows系统,且网络畅通。
只有少数券商的QMT无法在虚拟机里面运行。
之前笔者粗略地对比了下QMT读取的系统信息,异同点字在于磁盘序列号,想要硬刚的读者朋友在可以尝试修改虚拟机的硬盘序列号。
在python编写策略的代码层面,QMT和iQuant的接口文档也基本一致的,可能在一些功能函数上会有些少出入。二者写的python代码可互相在彼此上运行。
QMT 与 miniQMT
miniQMT属于QMT的一个子功能,一个精简功能下的自动交易框架,只支持实盘交易,不支持回测。在miniQMT模式下,你的策略代码将不在固定在自带的那个QMT软件下编写,而是可以自由地使用pycharm,vscode等编辑器,运行的时候直接使用 python xxxx.py 这样的形式启动。
只是券商很少对它进行宣传,以至于用它的人不多。
进入miniQMT的方法: 点击QMT程序,登录时勾选极简模式
注意:极简模式下,需要一直保持者这个miniQMT的登录程序在运行,意味者miniQMT也只能在windows系统下运行。
XtQuant
miniQMT的核心是XtQuant,XtQuant能提供哪些服务?
XtQuant是基于迅投MiniQMT衍生出来的一套完善的Python策略运行框架,对外以Python库的形式提供策略交易所需要的行情和交易相关的API接口。
XtQuant运行依赖环境
XtQuant目前提供的库包括Python3.6、3.7、3.8版本,不同版本的python导入时会自动切换。根据群友反馈,最新的版本可以支持到python3.11。
在运行使用XtQuant的程序前需要先启动MiniQMT客户端。
然后把你的QMT目录下的\bin.x64\Lib\site-packages\xtquant复制到你系统python目录下的site-packages。
然后就可以在你的代码里面导入QMT的函数,包括获取行情数据,下单函数。
它的帮助文档在bin.x64\Lib\site-packages\xtquant\doc 目录下。
从它的帮助文档来看,它是一套和QMT接口函数完全不一样的交易框架。
所以QMT的代码,无法直接拷贝到miniQMT中使用。虽然名字叫miniQMT,但感觉它提供的很多函数功能,要比QMT更为丰富,用户可以掌控的流程更多,更灵活。
iQuant版虽然也有精简版的miniQMT,但它对个人用户不提供下单功能呢,只有获取行情数据,财务数据等的数据权限。
还有一个与之配套的xtdata库,是专门用来获取行情数据的,而xttrade是专门用来交易下单的。
因为xtdata可以获取很多股票,可转债,ETF等等历史数据,所以即使你不用miniQMT做交易,你也可以白嫖它的数据,这比用积分的tushare简直不要太爽。比如可以获取到股票或可转债的日线,分钟线,甚至tick数据。
比如下面的代码就可以获取 众信转债 的某个时间的历史tick数据,并保存到文件。 只要稍微改造下,就可以获取全市场的转债的tick数据。
import pandas as pd
import datetime
def get_tick(code, start_time, end_time, period='tick'):
from xtquant import xtdata
xtdata.download_history_data(code, period=period, start_time=start_time, end_time=end_time)
data = xtdata.get_local_data(field_list=, stock_code=
, period=period, count=10)
result_list = data
df = pd.DataFrame(result_list)
df['time_str'] = df['time'].apply(lambda x: datetime.datetime.fromtimestamp(x / 1000.0))
return df
def process_timestamp(df, filename):
df = df.set_index('time_str')
result = df.resample('3S').first().ffill()
result = result[(result.index >= '2022-07-20 09:30') & (result.index <= '2022-07-20 15:00')]
result = result.reset_index()
result.to_csv(filename + '.csv')
def dump_single_code_tick():
# 导出单个转债的tick数据
code='128022'
start_date = '20210113'
end_date = '20210130'
post_fix = 'SZ' if code.startswith('12') else 'SH'
code = '{}.{}'.format(code,post_fix)
filename = '{}'.format(code)
df = get_tick(code, start_date, end_date)
dump_single_code_tick()
把上面保存为main.py, 然后执行python main.py , 片刻就可以看到生成的文件数据了。
结语
为了便于读者快速浏览帮助文档,可以在公众号后台回复对应的关键词获取对应的帮助文档:
qmt文档
miniqmt文档
如果想要体验qmt或者miniqmt自动交易的朋友,可以后台回复:开通qmt
即可获取低门槛低费率的开通qmt/iQuant的券商开户方式。
知识星球: