Qlib股票数据获取与查看(Qlib学习1)

文章目录

  • 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下载下来,在本地打开,可以看到:

Qlib股票数据获取与查看(Qlib学习1)_第1张图片

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

Qlib股票数据获取与查看(Qlib学习1)_第2张图片

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

你可能感兴趣的:(量化金融,学习,python,开发语言)