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

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

参考链接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值