微软开源!世界首个AI量化投资平台 Qlib 基本使用教程

Python实用宝典

共 5653字,需浏览 12分钟

 ·

2021-11-07 01:58

量化往期推荐

Easytrader 超简单的股市自动交易神器

Lean — 优秀好用的开源量化交易平台

30分钟教你搭建普罗监控系统—股票人气榜实时变化!

可转债交易薅羊毛策略 — Python 量化投资实战教程(10)

自定义MySQL数据流 — Python 量化投资实战教程(9)

A股回测“孕线”策略 — Python 量化投资实战教程(8)

Python 量化投资实战教程(7) — 孕线真的有用吗?

Python 量化投资原来这么简单(6) — 交易平均收益率

Python 量化投资原来这么简单(5) — A股回测KDJ策略

Python 量化投资原来这么简单(4) —KDJ 策略

量化投资原来这么简单(3) —A股回测MACD策略

量化投资原来这么简单(2)—MACD策略(+26.9%)

量化投资原来这么简单(1)




2020年9月,微软开源了AI量化投资平台Qlib的源代码,随后得到了不少的关注,Qlib的主要优势在于:

1.Python覆盖量化投资全过程,用户无需切换语言;内置许多深度学习算法模型,降低AI算法使用的门槛。

2.内置A股、美股数据接入通道,基于qrun能够自动运行整个工作流程,大大提高开发效率。

3.每个组件都是松耦合可以独立使用,用户能够自行选用某些组件。

Qlib相比于我们之前介绍的backtrader,那功能完善太多。backtrader相当于给你提供一个基本的量化框架,数据、策略、算法,你全部自己搞定。而Qlib则从数据、到策略、到算法都给了你全套的解决方案,你只需要加一点自己的想法,不需要管其他细枝末节的东西就能完成AI量化研究,非常方便。

下面我们就来试一下 Qlib 的安装和运行内置算法策略。

1.准备



开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章:超详细Python安装指南(传统)Python数据分析与挖掘好帮手—Anaconda》 进行安装,本文建议使用Anaconda。

由于qlib有许多许多依赖,如果你不想安装过程中出现问题,或者引起其他程序的运行问题,建议使用Conda创建一个你的量化投资虚拟环境:

conda create -n my_quant python=3.8


Qlib 仅支持 Python3.7 以上的版本且暂不支持 Python3.10; 另外 Python 3.9 版本不支持模型性能绘制,因此我选择创建Python3.8版本的虚拟环境。

(安装方式一)pip 安装:

pip install pyqlib


在pip安装的过程中如果遇到任何问题,请搜索引擎解决,如果无法解决,可以尝试下面的源码安装:

(安装方式二 (推荐))源码安装:

# 提前安装一些依赖
pip install numpy
pip install --upgrade cython

# clone and install qlib
git clone https://github.com/microsoft/qlib.git && cd qlib
python setup.py install


如果你由于网络问题无法成功Clone项目,请在Python实用宝典公众号后台回复 Qlib 下载源代码。

Windows 机器在安装的时候可能会遇到下面这个问题:


这是因为安装 qlib 的依赖 — tables 时出现了编译错误,原因很多,我选择逃学,因此建议使用 tables 的 wheel 文件进行安装,这样就不需要编译了:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pytables

在上述网站下载适合你系统的 wheel 文件:


下载完毕后,输入以下命令:


pip install 你的文件路径/tables-3.6.1-cp39-cp39-win_amd64.whl


即可完成 tables 的安装,然后再执行一遍 python setup.py install 即可。

2. 数据准备



由于这套量化开源平台的作者是中国人,所以非常贴心地准备好了A股数据,大家可以输入命令直接下载:

# 1天级别数据
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

# 1分钟级别数据
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data_1min --region cn --interval 1min


如果你需要其他分钟级的数据,修改interval即可。

你可以使用crontab定时自动更新数据(来自雅虎财经):

* * * * 1-5 python