微软开源的人工智能量化投资平台 Qlib 部署及初步使用笔记
一、环境配置
(一)克隆仓库
-
打开 GitHub Desktop。
-
在菜单栏中选择 Repository -> Clone Repository。
-
输入仓库的 URL:
https://github.com/microsoft/qlib.git
。 -
选择本地存储路径,然后点击 Clone。
-
克隆完成后,点击 Show in Explorer 打开项目文件夹。
https://github.com/microsoft/qlib.git
(二)在 PyCharm 中打开项目
-
在项目文件夹内,空白处按住 Shift 键并点击鼠标右键。
-
在弹出的菜单中选择 “Open Folder as PyCharm Community Edition Project”。
(三)创建虚拟环境
-
PyCharm 会自动检测并开始引导进行项目虚拟环境的创建过程。
-
在弹出的确认对话框中:
-
确认虚拟环境的存储位置(默认为项目根目录下的
.venv
文件夹)。 -
选择基础解释器的 Python 版本。
-
由于项目根目录下没有
requirements.txt
文件,PyCharm 会自动依据项目的setup.py
文件安装依赖,包括pyqlib
、numpy
等包。
-
-
点击 确定 开始创建虚拟环境并安装依赖。
二、依赖安装及升级
(一)验证安装的依赖包
-
在 PyCharm 左侧工具栏中,点击 “终端” 按钮打开内置终端。
-
输入以下命令来验证
pyqlib
和numpy
是否正确安装:pip show pyqlib pip show numpy
(二)升级 pip 及构建工具
-
输入以下命令来升级虚拟环境中的
pip
和构建工具:python -m pip install --upgrade pip setuptools wheel
(三)安装或升级 Cython
-
输入以下命令来安装或升级
Cython
:pip install --upgrade cython
验证安装:
pip show cython
三、安装额外的依赖库
(一)安装 PyTorch 及其相关库
-
输入以下命令来安装最新版的 PyTorch 及其相关库:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
尽量从PyTorch官方获取安装命令,确保一次成功。
-
安装完成后,可以通过以下命令验证 PyTorch 是否正确安装:
python -c "import torch; print(torch.__version__)"
或者使用完整的验证命令(进入python环境进行验证):
import torch # 导入 PyTorch 库
print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号
# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device) # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用
# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())
# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)
# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)
# 对张量进行逐元素相加
z = x + y
# 打印结果
print("张量 z 的值:")
print(z) # 输出张量 z 的内容
验证PyTorch深度学习环境Torch和CUDA还有cuDNN是否正确配置的命令-CSDN博客
(二)安装 CatBoost 和 XGBoost
-
输入以下命令来安装 CatBoost 和 XGBoost:
pip install catboost xgboost
-
安装完成后,可以通过以下命令验证 CatBoost 和 XGBoost 是否正确安装:
pip show catboost pip show xgboost
四、数据准备
(一)准备数据
-
在 PyCharm 的终端中,输入以下命令来下载和准备数据:
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn
(二)检查数据健康状况
-
数据准备完成后,输入以下命令来检查数据的健康状况:
python scripts/check_data_health.py check_data --qlib_dir ~/.qlib/qlib_data/cn_data
五、安装 Qlib
安装 Qlib
-
在 PyCharm 的终端中(确保激活了项目的虚拟环境),输入以下命令开始安装 Qlib:
python setup.py install
-
从下边图片的输出可以看到,安装过程中出现了一些
SetupToolsDeprecationWarning
,提示License classifiers
已被弃用,并建议使用 SPDX 许可证表达式。这些警告不会影响安装过程,可以忽略。
验证安装
-
安装完成后,终端会显示安装成功的消息。
-
从下边最后的图片输出可以看到,安装过程完成了字节编译和相关文件的安装,表明 Qlib 已成功安装到虚拟环境中。
六、初始化 Qlib
初始化
-
在 PyCharm 的终端中,启动 Python 交互环境:
python
-
在 Python 交互环境中,输入以下代码来初始化 Qlib:
import qlib from qlib.constant import REG_CN qlib.init(provider_uri='~/.qlib/qlib_data/cn_data', region=REG_CN)
七、运行示例
(一)进入示例目录
-
在 PyCharm 的终端中,退出上一步中的 Python 交互环境:
exit()
-
切换到
examples
目录:cd examples
(二)运行工作流配置
-
运行 Qlib 的
qrun
命令来执行 LightGBM 的工作流配置:qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml
八、结果分析
(一)回测输出及结果分析
backtest loop: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 871/871 [00:04<00:00, 179.74it/s]
[61348:MainThread](2025-05-22 11:37:32,922) INFO - qlib.workflow - [record_temp.py:515] - Portfolio analysis record 'port_analysis_1day.pkl' has been saved as the artifact of the Experiment 962284265396741762
'The following are analysis results of benchmark return(1day).'
risk
mean 0.000477
std 0.012295
annualized_return 0.113561
information_ratio 0.598699
max_drawdown -0.370479
'The following are analysis results of the excess return without cost(1day).'
risk
mean 0.000530
std 0.005718
annualized_return 0.126029
information_ratio 1.428574
max_drawdown -0.072310
'The following are analysis results of the excess return with cost(1day).'
risk
mean 0.000339
std 0.005717
annualized_return 0.080654
information_ratio 0.914486
max_drawdown -0.086083
[61348:MainThread](2025-05-22 11:37:32,928) INFO - qlib.workflow - [record_temp.py:540] - Indicator analysis record 'indicator_analysis_1day.pkl' has been saved as the artifact of the Experiment 962284265396741762
'The following are analysis results of indicators(1day).'
value
ffr 1.0
pa 0.0
pos 0.0
[61348:MainThread](2025-05-22 11:37:33,625) INFO - qlib.timer - [log.py:127] - Time cost: 0.000s | waiting `async_log` Done
Exception ignored in: <function ResourceTracker.__del__ at 0x00000267C69C4040>
Traceback (most recent call last):
File "F:\PythonProjects\qlib\.venv\Lib\site-packages\joblib\externals\loky\backend\resource_tracker.py", line 181, in __del__
AttributeError: 'super' object has no attribute '__del__'
回测输出显示了模型预测结果,包括时间序列、标的和得分。生成的指标如 IC 和 ICIR 用于评估模型的有效性和稳定性。回测过程还输出了模型训练的日志,如均方误差等。这些信息表明回测过程正常进行,模型在训练集和验证集上表现良好。
最后的报错是由于 joblib
库中的资源跟踪器在程序结束时尝试清理资源,但遇到了某些不兼容的操作导致的。这个错误通常不会影响回测结果的有效性,可以忽略。
(二)输出的分析结果
-
基准回报(benchmark return):
-
年化回报(
annualized_return
):11.36% -
信息比率(
information_ratio
):0.60 -
最大回撤(
max_drawdown
):-37.05%
-
-
无成本超额回报(excess return without cost):
-
年化回报:12.60%
-
信息比率:1.43
-
最大回撤:-7.23%
-
-
含成本超额回报(excess return with cost):
-
年化回报:8.07%
-
信息比率:0.91
-
最大回撤:-8.61%
-
-
指标分析(indicators):
-
FFR(
ffr
):1.0 -
PA(
pa
):0.0 -
POS(
pos
):0.0
-
九、总结
通过上述步骤,我们已经成功地在本地部署了 Qlib 项目,并配置好了开发环境。
我们可以使用 Qlib 提供的 API 和工具进行量化研究或模型训练。
如果在后续开发过程中遇到任何问题,可以随时向我提问,我会尽力帮助您解决。
希望这份笔记对您有所帮助!