先说一下,不要用pip install pyqlib来安装qlib,他目前会安装0.8.6版,该版运行会出错。
为系统化学习微软AI量化平台Qlib,需要系统地掌握其核心知识点。这些知识点有些散落在互联网零碎的文章中,有些文章还是错误的误导读者,有些知识点还没有出现在现有文章中。为此,我们将这些知识点加以总结,形成较为系统化的体系如下:
Qlib详细知识点
1. 概述
2. Qlib安装与数据准备
2.1. Qlib简介
2.2. 安装Qlib
2.2.1. 安装Anaconda3-2021.05(内含Python 3.8.8)
2.2.2. 安装Qlib
2.2.3. 升级numpy
2.3. 行情数据下载
2.4. 行情数据查询
2.4.1. 定义基于文件的股票池(复权因子解释)
2.4.2. 定义派生字段
2.4.3. 使用算子
2.4.4. 检索股票池股票代码
2.4.5. 检索交易日历
2.4.6. 定义基于股票代码列表的股票池
2.4.7. 自定义文件股票池
2.4.8. D数据接口方法
2.4.9. 股票池过滤
2.5. Qlib Bugfix
3. 训练、预测与回测工作流
3.1. 初始化,设置股票池和基准
3.2. 训练
3.2.1. 训练参数设置
3.2.2. 通过配置实例化模型和数据集对象
3.2.3. early_stopping_rounds,num_boost_round
3.3. 预测
3.3.1. 预测实验
3.3.2. 预测结果查询
3.3.3. 预测绩效分析图
3.3.4. 特征重要性
3.4. 回测
3.4.1. 回测实验
3.4.2. 回测结果查询
3.4.3. 回测绩效分析图
3.5. 其它功能
3.5.1. 实验记录管理器R和实验记录器的接口方法浏览
3.5.2. mlflow ui查看web实验记录
3.5.3. 如何删除磁盘上的实验结果目录
3.6. dataset数据查询与保存为pickle文件
3.6.1. 查看全部特征和标签数据
3.6.2. 查看标签(即预测对象)的定义
3.6.3. 查看特征的定义
3.6.4. dataset保存为pickle文件
4. 从中间开始工作流,多步一个实验工作流
4.1. 利用pickle文件从中间开始工作流
4.1.1. 加载数据集pickle文件
4.1.2. 加载模型pickle文件
4.1.3. 执行回测
4.2. 训练预测回测多步一个实验
4.2.1. 创建model和dataset
4.2.2. 训练预测回测在一个实验中完成。
4.2.3. 预测结果查询与分析
4.2.4. 回测结果查询与分析
4.2.5. mlflow ui 查看实验记录
5. 从yaml文件生成配置字典
6. 不用实验管理器R的实验
6.1. 不用实验管理器R的实验过程
6.2. 利用模型和数据集pickle文件从中间开始实验
7. 数据集dataset与数据预处理详解
7.1. Alpha360的数据预处理核心逻辑
7.2. 推理处理器与学习处理器的区别
7.3. dataset.prepare()方法访问数据
7.3.1. 检索原始数据
7.3.2. 检索推理数据(用于预测)
7.3.3. 检索学习数据(用于训练与验证)
7.4. Alpha360定义特征和标签的接口方法
7.5. 特征(因子)定义的原则:去单位化,即无量纲化
7.5.1. Alpha360特征定义源码
7.6. Alpha158的数据预处理
7.7. 定制数据预处理
7.8. 内置预处理器功能介绍
8. 自定义因子库类
8.1. 观察内置Alpha360因子库类
8.2. 自定义因子库类
8.3. 自定义因子库类可用的算子
8.4. 使用非字符串表达式定义特征
9. 回测策略解析
9.1. 引例
9.2. 总体逻辑
9.3. TopkDropoutStrategy和SimulatorExecutor源码分析
9.4. 另一个回测入口点
10. 使用其它机器学习模型
10.1. 使用LSTM模型
10.1.1. Qlib内置模型浏览
10.1.2. 安装pyTorch
10.1.3. LSTM模型配置
10.1.4. data_handler_config设置
10.2. 筛选出特定特征参与训练
10.3. 使用XGBoost模型
10.4. 转化为时间序列数据进行训练:_ts.py文件里的模型
10.4.1. TSDatasetH与step_len
10.4.2. 带_ts后缀的模型文件
10.5. 自定义模型封装类
10.5.1. 继承Model,FeatureInt(可选)
10.5.2. 实现接口__init__,fit,predict,get_feature_importance(可选)
11. qrun运行yaml文件配置的实验
11.1. qrun运行yaml实验配置文件,web页查看结果
11.2. cli.py文件
12. 使用自己的数据源准备qlib数据
12.1. Qlib使用的yahoo财经数据准备过程核心逻辑回顾
12.1.1. 下载原始csv
12.1.2. 生成复权数据
生成复权因子factor = adjclose/close,然后利用factor生成ohlc的复权价格
(比如复权open=原始 open*factor),以及复权成交量(复权volume=原始volume/factor)
12.1.3. 用最早的收盘价_close标准化数据csv
12.2. 生成原始未复权的行情csv
12.3. 生成复权csv
12.3.1. 异常数据处理
12.3.2. 生成复权数据
12.4. 生成Qlib格式的bin数据
交易日历day.txt自动生成,取所有csv文件的日期合集, 制作股票池文件
12.5. 准备csv文件过程总结
12.6. dump_bin.py dump_update增补后续时段的新行情数据
此步要先把原来的csv文件全部删除,再执行,否则有可能出错。
12.7. dump_bin.py dump_fix补充以往同时段内的新股票或新特征
此步必须先把原来的csv文件全部删除,再执行,否则有可能出错。
12.8. 制作含外部特征的因子库类MyAlphaExt
行情数据中的turnover作为特征
12.9. 更简单的数据准备过程
13. 与backtrader结合
13.1. Qlib执行训练预测
13.2. 获取预测值score
13.3. 合并ohlc和score
13.4. 数据喂给backtrader
14. 常见错误处理
(1)安装qlib时出错提示:error: Microsoft Visual C++ 14.0 or greater is required
(2)不要用pip install pyqlib安装
这样安装的版本0.8.6有错误,要用我视频里的方法安装。
(3)downloaddata.ipynb下载出错
解决办法1:
pip uninstall pypiwin32
pip install pywin32==225
(注意,不要安装新版如304版,会出错)
解决办法2:
不下载数据,直接复制附件的数据到对应目录。
(4)运行aksharecustomData报错module 'bson' has no attribute 'encode'
解决:pip uninstall bson, pip uninstall pymongo,pip install pymongo
(5)生成dataset时出错:
解决:pip install --upgrade pandas