文章目录
- Qlib基本信息
- 数据使用方法
- 1. 借助Qlib下载数据
- 2. 查看相关数据
- 参考链接
Qlib基本信息
Qlib Github主页:https://github.com/microsoft/qlib
Qlib quickstart:https://qlib.readthedocs.io/en/latest/introduction/quick.html#introduction
基本的运行流程,可以参考workflow_by_code.ipynb文件:https://github.com/microsoft/qlib/blob/main/examples/workflow_by_code.ipynb
下面是逐步使用下述代码进行实验与学习的探索:
数据使用方法
首先安装依赖:
pip install pyqlib
通过安装qlib把所需的依赖包全部安装好,然后把qlib
的项目从github下载下来,在本地打开,可以看到:
1. 借助Qlib下载数据
然后开始采集数据:
pip install --upgrade cython
python setup.py build_ext --inplace
pip install Yahooquery
pip install beautifulsoup4
然后使用下面的命令获取A股的数据:
python scripts/get_data.py qlib_data --target_dir cn_data/ --region cn
可以看到:
在根目录/cn_data/
下,包含下面的三个文件夹:
- calendars:主要存放交易日历
- day.txt:日线的交易日
- features:股票的数据
- instruments:通常作为baseline的指数文件,每个文件都是3列,代表:
股票代码 加入指数日期 退出指数日期
- all.txt:全部的股票记录
- csi100.txt:中证100
- csi300.txt:中证300
- csi500.txt:中证500
2. 查看相关数据
from qlib.data import D
import qlib
from qlib.constant import REG_CN
if __name__ == '__main__':
provider_uri = "../cn_data"
qlib.init(provider_uri=provider_uri, region=REG_CN) # 初始化数据
# ============= 获取交易日历 ================
# D.calendar() # 全部数据支持的交易日历
calendar = D.calendar(start_time='2015-01-01', end_time='2016-01-01', freq='day') # 指定日期区间的交易日历
print(calendar[:5])
# ============= 获取具体的数据 ================
# 定义一个instruments对象,即股票池;值的选取与 cn_data/instruments/ 下面的txt文件名相同
my_instruments = D.instruments(market='csi300')
print(D.list_instruments(instruments=my_instruments, as_list=True)[:6]) # 打印6个股票名称
data_df = D.features(instruments=['SH600000', 'SH600009'], fields=["$open", "$high", "$low", "$close"], start_time='2015-01-01', end_time='2016-01-01') # 获取具体的数据
print(data_df.head(10))
得到的结果如下:
[Timestamp('2015-01-05 00:00:00') Timestamp('2015-01-06 00:00:00')
Timestamp('2015-01-07 00:00:00') Timestamp('2015-01-08 00:00:00')
Timestamp('2015-01-09 00:00:00')]
['SH600000', 'SH600004', 'SH600009', 'SH600010', 'SH600011', 'SH600015']
$open $high $low $close
instrument datetime
SH600000 2015-01-05 7.068249 7.205658 6.899705 7.125888
2015-01-06 7.094818 7.396333 7.014985 7.152458
2015-01-07 7.050495 7.170213 6.886390 7.010546
2015-01-08 7.037178 7.041616 6.740102 6.762232
2015-01-09 6.740102 7.205658 6.700153 6.842065
2015-01-12 6.873138 6.966224 6.629200 6.748981
2015-01-13 6.709033 6.833189 6.695716 6.731226
2015-01-14 6.788864 7.001731 6.788864 6.868697
2015-01-15 6.868698 7.161335 6.824311 7.148019
2015-01-16 7.201220 7.427403 7.165774 7.303246
参考链接
- https://qlib.readthedocs.io/en/latest/FAQ/FAQ.html#modulenotfounderror-no-module-named-qlib-data-libs-rolling