实用指南:Qlib回测与量化1:基础环境搭建
这个系列的博客博主打算使用qlib框架实现数据->模型->回测的全流程,之前博主使用backtrader(详情见:Backtrader量化&回测1——基本的交易策略与挂单买卖),但是效率与集成度不是很高,许多轮子还要自己想办法,因此这里博主改用qlib开始回测
Github官网:https://github.com/microsoft/qlib
1. 环境配置
环境安装
首先创建conda的环境:
conda create -n qlib python=3.11 # 创建一个叫qlib的python=3.11版本的
conda activate qlib
安装qlib:
pip install pyqlib
运行完成后即可使用qlib
初始化Qlib
cd ~/Desktop
mkdir qlib_data
cd qlib_data
初始化数据:
wget https://github.com/chenditc/investment_data/releases/latest/download/qlib_bin.tar.gz # 下载
解压后有三个文件夹,把这三个文件夹放到~/Desktop/qlib_data的文件夹中,得到如下目录结构:
- ~/Desktop/qlib_data/calendars:主要看day.txt文件,表示交易日历
- ~/Desktop/qlib_data/instruments:表示指数所属的股票代码,包含三列:股票代码、起始日期、终止日期
- ~/Desktop/qlib_data/features:对应代码列表,包含高开低收等数据
2. 信息展示
交易日历与指数信息展示
使用如下代码进行信息的展示:
import qlib
from qlib.constant import REG_CN
from qlib.data import D
qlib.init(
provider_uri='~/Desktop/qlib_data', # 数据存储目录
region=REG_CN, # qlib的股票交易模型,不同的模式将导致不同的交易限制和成本
)
# 交易日历
trade_calendar = D.calendar(start_time='2025-01-01', end_time='2025-01-31', freq='day')
print(f"交易日:{
len(trade_calendar)
}")
# 股票列表
stock_instruments = D.instruments('all')
stock_list = D.list_instruments(instruments=stock_instruments, start_time='2025-01-01', end_time='2025-01-31')
print(f"股票数量:{
len(stock_list)
}")
得到结果:
交易日:18
股票数量:5399
股票数据展示
如果想要获取某一个个股的信息,使用如下代码:
import qlib
from qlib.constant import REG_CN
from qlib.data import D
if __name__ == '__main__':
qlib.init(
provider_uri='~/Desktop/qlib_data', # 数据存储目录
region=REG_CN, # qlib的股票交易模型,不同的模式将导致不同的交易限制和成本
)
# 获取特征数据
data = D.features(
instruments=[
'SZ000001', # 平安
'SH600519', # 茅台
],
fields=[
# 基础数据
'$open', '$high', '$low', '$close', '$volume',
'$adjclose', # 后复权成交价
# 数据偏移
'Ref($close, 1)', # 昨日收盘价
'Ref($close, -1)', # 明天的收盘价(注意!未来函数)
# 数据计算
'($high + $low) / 2', # 中间价
'$close / Ref($close, 1) - 1', # 当日收益率
'Mean($close, 5)', # 5日收盘价的均值
'Max($high, 20)', # 20日最高价
'Min($low, 20)', # 20日最低价
'Std($close, 20)', # 20日标准差
# 技术指标
'EMA($close, 5)', # 5日移动平均
],
start_time='2025-01-01',
end_time='2025-01-31',
freq='day'
)

浙公网安备 33010602011771号