文章目录
- 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



















