很多朋友最近刚上手内置QMT, 但大家上手第一步就集中在策略代码编写方面,却忽略了软件底层的系统文件夹。内置 QMT 自带独立封闭 Python 运行环境,策略源码、运行日志、缓存数据、第三方库、回测记录全部记录在系统的各个文件夹中。不熟悉文件夹结构,很容易出现数据找不到、库安装无效、报错看不懂、重装软件文件丢失等各类问题。
作为本教程的第一课,今天将完整梳理内置QMT 系统文件夹,逐个解析核心目录功能,理清内置环境的底层逻辑,为后续策略开发、环境配置、问题排查打下基础。
一、主文件夹——bin.x64
QMT 系统内置独立的 Python3.6 环境,bin.x64是系统的主文件夹,解释器pythonw.exe、标准库Lib、第三方库目录site‑packages全部放在这个文件夹下面。QMT策略代码执行时,调用的就是这个目录的 Python,不是电脑系统安装的 Python。
二、数据文件夹——datadir
我们QMT在本地运行,历史数据也需要先下载到本地才能使用,在安装目录,也就是bin.x64主文件夹的上一级文件夹,我们可以看到datadir数据文件夹,下载的数据文件都在这里。datadir数据文件夹的作用包括:
储存历史数据:通过QMT客户端界面或者download_history_data接口下载的历史数据(日线、分钟线、Tick 分笔)全部保存在这里,文件为二进制.DAT格式,不能直接打开阅读。
按市场、周期分类管理:内部按交易所划分SH上交所、SZ深交所等文件夹;子文件夹数字代表周期,0=Tick、60=1 分钟、300=5 分钟、86400= 日线。
读取优先读取本地:历史数据下载到本地后,调用时需要用get_market_data接口读取,当 subscribe 参数传 False 时,函数会优先读取datadir中的本地数据,不会向服务器请求下载。如果 subscribe 参数传 True ,那就会读取本地数据的同时订阅最新行情数据。
三、log 日志所在文件夹
QMT系统的日志文件夹位于bin.x64的上一级安装目录下的 userdata\log 路径,主要用于记录系统运行时的详细情况,帮助用户排查策略运行、行情数据、客户端操作等异常问题。具体包含以下日志文件及其作用:
XtClient_20210922.log - 客户端常规日志,记录客户端整体运行状态
XtClient_datasource_20210922.log - 行情数据日志,
XtClient_Formula_20210922.log - 策略运行日志
XtClient_FormulaOutput.log - 策略输出日志

在策略运行、行情数据、客户端操作各个节点出问题据可以找到对应的日志文件排查,这是最快找到原因的方式。