码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
    
    • 1

    通过安装qlib把所需的依赖包全部安装好,然后把qlib的项目从github下载下来,在本地打开,可以看到:

    在这里插入图片描述

    1. 借助Qlib下载数据

    然后开始采集数据:

    pip install --upgrade cython
    python setup.py build_ext --inplace
    pip install Yahooquery
    pip install beautifulsoup4
    
    • 1
    • 2
    • 3
    • 4

    然后使用下面的命令获取A股的数据:

    python scripts/get_data.py qlib_data --target_dir cn_data/ --region cn
    
    • 1

    可以看到:

    在这里插入图片描述

    在根目录/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))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    得到的结果如下:

    [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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    参考链接

    • https://qlib.readthedocs.io/en/latest/FAQ/FAQ.html#modulenotfounderror-no-module-named-qlib-data-libs-rolling
  • 相关阅读:
    Zabbix配置监控文件系统可用空间小于30GB自动告警
    代码随想录 | Day 55 - LeetCode 392. 判断子序列、LeetCode 115. 不同的子序列
    Android四大组件之Service(一)
    wordpress模板购买网站推荐
    基于STM32的电子时钟(论文+源码)
    [附源码]java毕业设计党建工作信息管理系统
    狂欢过后,万众期待的元宇宙怎么样了?
    【UV打印机】电气之数字式温度控制器(W2071)
    【基数排序算法详解】Java/Go/Python/JS/C不同语言实现
    DBMS_RESOURCE_MANAGER
  • 原文地址:https://blog.csdn.net/weixin_35757704/article/details/127389486
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号