问题描述
请问,原来安装 qmt 的磁盘空间不够了,如何能指定 xtdata.download_history_data2 下载的数据存放到其它更大的盘的目录?windows 11,python 环境。
谢谢!
解决方案
在Windows 11环境下使用QMT(迅投/国信等)的 xtdata 下载历史数据时,随着数据量增加,默认安装盘(通常是C盘或QMT安装盘)很容易出现空间不足的情况。要将 xtdata.download_history_data2 下载的数据存放到其他更大的磁盘目录,主要有以下几种行之有效的方法:
方法一:使用 Windows 目录软链接(最推荐,无需改代码)
这是最安全且最通用的方法。通过Windows自带的 mklink 命令,你可以将数据实际存放在大容量磁盘(如D盘),但让QMT和Python“以为”数据还在原来的位置。这样完全不需要修改任何代码。
操作步骤:
- 找到默认数据目录:
通常xtdata的数据会存放在QMT客户端安装目录下的userdata_mini文件夹中(例如C:\国信QMT\userdata_mini),或者在你Python环境的xtquant库目录下。 - 移动数据到新盘:
将整个数据文件夹(例如userdata_mini)剪切并粘贴到你的大容量磁盘,例如D:\QMT_Data\userdata_mini。 - 创建目录软链接(目录联接):
- 点击Windows开始菜单,搜索
cmd,右键选择**“以管理员身份运行”**。 - 在命令行中输入以下命令(请根据你的实际路径替换):
mklink /J "C:\国信QMT\userdata_mini" "D:\QMT_Data\userdata_mini" - 看到提示“为 xxx <<===>> xxx 创建的联接”即表示成功。
- 点击Windows开始菜单,搜索
现在,当你运行 xtdata.download_history_data2 时,数据会自动写入D盘,但程序读取时依然通过C盘的快捷方式读取,完美解决空间不足问题。
方法二:在代码中指定 xtdata 的数据目录
如果你使用的是独立的 xtquant 包,部分版本支持在代码初始化时直接指定数据存放路径。
操作步骤:
在调用任何下载或获取数据的函数之前,先设置 data_dir 属性:
from xtquant import xtdata
# 指定新的数据存放目录(确保该目录已存在或有权限创建)
xtdata.data_dir = 'D:\\QMT_Data\\xtdata_history'
# 然后再执行下载操作
xtdata.download_history_data2(
stock_list=['000001.SZ'],
period='1d',
start_time='20200101',
end_time='20231231'
)
注意:此方法依赖于你所安装的 xtquant 版本,如果发现设置后数据依然下载到老目录,说明当前版本可能硬编码了路径,请优先使用方法一。
方法三:重新安装 QMT 客户端到大容量磁盘
如果你的QMT客户端本身就安装在空间较小的磁盘,且不仅是历史数据,未来还会产生大量的日志和回测缓存,建议直接将QMT迁移。
- 备份你编写的策略代码(通常在
[QMT安装目录]\User\或[QMT安装目录]\bin.x64\Lib\site-packages下的自定义库)。 - 卸载当前的QMT客户端。
- 在空间充足的磁盘(如D盘或E盘)新建文件夹,重新安装QMT客户端。
- 重新配置Python环境,之后所有的数据下载都会默认存放在新的大容量磁盘中。
总结建议:对于不想折腾环境和代码的用户,**方法一(mklink 软链接)**是最优雅的解决方案,对系统和程序的侵入性最小。