AI 量化投资开源平台Qlib学习(三)
Qlib初始化
·
目录
初始化
1.下载并准备数据:执行以下命令来下载股票数据。请注意,数据是从 Yahoo Finance 上收集的,可能并不完美。如果用户拥有高质量的数据集,我们建议用户准备自己的数据。
一般需要挂梯子或使用镜像下载使用镜像下载(建议挂梯子):
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn
python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn --source_url https://mirrors.tuna.tsinghua.edu.cn/qlib/qlib_data_cn_1d_0.9.zip

2.先初始化 Qlib:
import qlib
# 区域取值 [REG_CN, REG_US]
from qlib.constant import REG_CN
provider_uri = "~/.qlib/qlib_data/cn_data" # 目标目录
qlib.init(provider_uri=provider_uri, region=REG_CN)
successfully initialized是Qlib初始化成功的直接标志data_path正确指向您配置的目录D:/B/Qlib/.qlib/qlib_data/cn_data
参数
- provider_uri:类型:str。Qlib 数据的 URI。例如,它可以是由
get_data.py加载的数据存储位置 - region:类型:str,可选参数(默认值:qlib.constant.REG_CN)。当前支持值有:
qlib.constant.REG_US(’us’) 、qlib.constant.REG_CN(’cn’)
获取数据测试
# 测试代码
import os
from qlib.data import D
from qlib.constant import REG_CN
# 检查数据目录
data_dir = r"D:/B/Qlib/.qlib/qlib_data/cn_data"
print("目录是否存在:", os.path.exists(data_dir)) # 应输出 True
print("日历文件是否存在:", os.path.exists(f"{data_dir}/calendars/day.txt")) # 应输出 True
# 初始化Qlib
import qlib
qlib.init(provider_uri=data_dir, region=REG_CN)
# #获取交易日期并正确切片
calendar = D.calendar(start_time='2010-01-01', end_time='2017-12-31', freq='day')[:2]
print(calendar) # 直接打印前两个交易日
# 将给定的市场名称解析为股票池配置:
instruments=D.instruments(market='all')
print(instruments)
# 在给定的时间范围内加载某个股票池的证券品种:
instruments = D.instruments(market='csi300')
ListTimeinstruments=D.list_instruments(instruments=instruments, start_time='2010-01-01', end_time='2017-12-31', as_list=True)[:6]
# 直接打印前六个证券品种
print(ListTimeinstruments)
# 从基础市场加载符合名称过滤器的动态工具
from qlib.data.filter import NameDFilter
nameDFilter = NameDFilter(name_rule_re='SH[0-9]{4}55')
instruments = D.instruments(market='csi300', filter_pipe=[nameDFilter])
ListNameinstruments=D.list_instruments(instruments=instruments, start_time='2015-01-01', end_time='2016-02-15', as_list=True)
print(ListNameinstruments)
正确运行后结果:
更多推荐



所有评论(0)