量化交易学习(十四)Qlib人工智能量化框架安装使用(1)

今天试用了一下Qlib,一款微软开源的人工智能量化框架。它用起来没有backtrader那样简单易懂,网上相关的教程很少,我找到了一篇介绍Qlib的研报,大家想看这篇研报可以私信我。本文记录一下Qlib的安装及使用方法。

Qlib 是一个面向人工智能的量化投资平台,旨在利用人工智能技术从探索想法到实施生产,实现潜力,赋能研究,创造价值。Qlib 支持多种机器学习建模范式,包括监督学习、市场动态建模和强化学习。

Qlib支持Windows和Linux。推荐在Linux下使用Qlib。支持Python3,不过不支持最新的python,最高支持到python3.8。

在 Windows 上使用的话还得安装好 Microsoft C++生成工具,下载地址:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

我用 anaconda 创建了一个新的python3.8的环境来安装qlib,安装命令如下:

1
2
3
pip install pyqlib
pip install lightgbm
pip install torch

安装好后,运行python,然后导入qlib,运行 qlib.version 如果有输出则说明qlib安装成功了。

1
2
3
>>> import qlib
>>> qlib.__version__
<LATEST VERSION>

安装好后,下载qlib源码,在它的源码中,附带了下载数据的脚本。

1
git clone https://github.com/microsoft/qlib.git

执行下载中国股市数据的代码,方便执行官方的例子。

1
2
cd qlib
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

初始化数据

1
2
import qlib
qlib.init(provider_uri="~/.qlib/qlib_data/cn_data")

图片
获取交易日期

1
2
3
4
5
6
from qlib.data import D

trade_date = D.calendar(start_time='2020-01-01',end_time='2020-11-30',freq='day')[:]

# 展示前5个交易日
print(trade_date[:5])

图片

获取2020年7~11月沪深300股票代码

1
2
3
4
5
6
7
instruments = D.instruments(market='csi300')
stock_list=D.list_instruments(instruments=instruments,
start_time='2020-07-01',
end_time='2020-11-30',
as_list=True)
# 展示最后5个股票代码
print(stock_list[-5:])

图片
获取指定股票指定日期指定字段数据
features_df = D.features(instruments=[‘SH600519’],fields=[‘$close’,‘$volume’],
start_time=‘2020-01-01’,end_time=‘2020-11-30’,freq=‘day’)
print(features_df)
图片

生成Alpha158特征(当期因子)和标签(下期收益)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from qlib.contrib.data.handler import Alpha158

# 设置日期、股票池等参数
data_handler_config={
'start_time':'2020-01-01',
'end_time':'2020-11-30',
'fit_start_time':'2020-01-01',
'fit_end_time':'2020-06-30',
'instruments':instruments,
}

h=Alpha158(**data_handler_config)

# 获取列名(因子名称)
print(h.get_cols())

图片

获取Alpha158因子库标签(下期收益)

1
2
Alpha158_df_label=h.fetch(col_set='label')
print(Alpha158_df_label)

图片

获取Alpha158因子库特征(当期因子)

1
2
Alpha158_df_feature=h.fetch(col_set='feature')
print(Alpha158_df_feature)

图片

今天这篇文章简单介绍了一下Qlib库的安装及数据的获取,最后介绍了下怎么生成Alpha158特征(说实话,我也没弄懂要怎么用这些因子库,总之先照葫芦画瓢),下一篇文章照着研报跑一下LightGBM 选股策略构建。

江达小记