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

news2024/11/25 7:05:36

文章目录

  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode刷题---142. 环形链表 II(双指针-快慢指针)

文章目录一、编程题:142. 环形链表 II(双指针-快慢指针)1.题目描述2.示例1:3.示例2:4.示例3:5.提示:6.提示:二、解题思路1.思路2.复杂度分析:3.算法图解三、代码实现总结…

如何理解Linux下一切皆文件

文章目录一、问题抛出二、如何理解三、Linux源码验证一、问题抛出 Linux中普通文件、目录、字符设备、块设备、网络设备等都被当做文件来对待。虽然他们的类型不同,但是Linux中提供了统一的操作接口。  普通文件、目录文件显然非常好理解,因此在本文中&…

今日论文阅读2022-11-10

多模态预训练论文ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasksvision-and-language tasks: visual question answering,visual commonsense reasoning, referring expressions, and caption-based image ret…

基于DeepLabV3实践路面、桥梁、基建裂缝裂痕分割

在我前面的文章中有基于改进的模型开发的裂缝裂痕检测模型,感兴趣的话可以看下: 《基于yolov5sbifpn实践隧道裂缝裂痕检测》 今天主要是趁着有时间基于deeplabv3来实践裂缝裂痕分割。首先来看效果图: 为了整体直观,这里专门是开…

腾讯蓝鲸 API 网关如何借助 APISIX 实现产品升级与业务完善

分享嘉宾朱雷,腾讯 IEG 运维 PaaS 平台技术负责人。 蓝鲸(全名“蓝鲸智云”)是一套孵化于腾讯 IEG(互动娱乐事业群)内部,服务于多业务与各内部平台的研运一体化 PaaS。 其作用是在 CI、CD 和 CO 三个阶段&a…

Spring 概述

Spring是 Java 应用程序开发框架。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO编程模型来促进良好的编程实践。 Spring Framework Spring 基础框架是 Spring Framework ,基本上任何其他 Spring 项目都是以 Spring Framework 为…

如何进入 mysql?

目录 1. win r 2. 输入cmd点确定 3. 输入 mysql -u -t 4. 点回车出现 下面的 就代表已经进入 mysql 退出 mysql的 方法: 1. win r 2. 输入cmd点确定 3. 输入 mysql -u -t -u :代表你的用户名,如果是本地登录 则为 -uroot-p &am…

学习python第7天

Python绘制图形库turtle 1.介绍: turtle库根据一组函数指令的控制,在平面坐标系中移动,从 而它爬行的路径上绘制图形。 2.原理:turtle(海龟)由程序控制在画布上游走,走过的轨迹形成绘 制的图形&#xff0c…

子不语IPO下限定价:预计2022年全年净利润下滑,华丙如为实控人

11月10日,子不语集团有限公司(HK:02420,下称“子不语”)在港交所公布发售结果。公告显示,子不语在香港公开发售及国际配售(不含基石部分)阶段均获得超额认购,将于2022年11月11日在港…

【前端】Vue+Element UI案例:通用后台管理系统-登陆页面Login

文章目录目标代码0.路由1.结构2.校验规则3.样式总代码Login.vue效果本篇很短,因为只有一个页面。没有功能。 目标 登陆页面,路由为/login有表单验证 代码 0.路由 在router的index.js文件中的routes中添加对象: {path:/login,component:L…

SpringBoot+Mybatis+CRUD项目

一、项目要求 创建一个 SpringBoot 项目,项目名”week11_学号”;使用 Mybatis 框架,也可以时可用 MybatisPlus 框架;访问 myschool 数据库;对 student 表进行操作,向 student 插入自己的一条记录&#xff…

Linux学习-29-用户组信息相关命令

8.17 Linux groupadd命令:添加用户组 添加用户组的命令是 groupadd,命令格式如下: [rootCncLucZK ~]# groupadd [选项] 组名选项: -g GID:指定组 ID;-r:创建系统群组。-o 一般与-g选项同时使用&#xff0…

C++ opencv 图像色彩空间转换--色域捕获

1.API和相关知识 1.inRange 在opencv中,我们提取指定色彩范围的区域,采用inRange实现,这样的一块区域,学名叫做ROI(region of interest),感兴趣区域。 关于inRange的提取原理 图像中&#xff0…

这是一篇用python画3D爱心的代码

浅浅写一个最近很火的爱心代码 最近你是否也被李峋的爱心跳动代码所感动,心动不如行动,相同的代码很多,我们今天换一个玩法!构建一个三维的跳动爱心!嗯!这篇博客本着开源的思想!不是说谁对浪漫…

开放服务担心安全?vx-api-gateway值得一用

下载地址:VX-API-Gateway帮助文档 下载解压打开后 Windows 下vx-api-gateway启动 bin目录下start.bat文件 启动后访问http://localhost:5256/ VX-API客户端用于查看VX-API运行的基本信息,管理应用与API及黑名单,打开客户端的方式,在浏览器中请求http://地址:端口…

被生活、房贷车贷压得喘不过气的35岁测试工程师,拿什么来谈追求~

高龄测试员现状 我有位在深圳工作的测试员朋友分享了他的工作经历,他今年35岁,前不久被公司辞退,面对家庭,房贷,车贷的压力,让他的生活都是一片灰,离职后最让测试员感到痛心是在面试多家公司以…

Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)

一、收发标准广播 Android的广播机制正式借鉴了Wifi的通信原理,不必搭建专门的通路,就能在发送方与接收方之间建立连接,同时广播也是Android的四大组件之一,它用于Android各组件之间的灵活通信,与活动的区别在于以下几…

荧光素标记大鼠甲状腺滤泡上皮细胞FRTL-5,荧光素FITC标记的FRTL-5细胞,FITC-FRTL-5

产品名称:荧光素标记大鼠甲状腺滤泡上皮细胞FRTL-5,荧光素FITC标记的FRTL-5细胞 英文名称:FITC-FRTL-5 在F-12培养基中加入5%小牛血清、10mU/ml TSH、10g/ml胰岛素、5g/ml转铁蛋白、10ng/ml生长抑素、0.4ng/ml氢化可的松、10ng/…

JAVA虚拟机的性能监控

一、JDK的命令行工具 命令一:jps(虚拟机进程状况工具) jps -q //只输出LVMID,省略主类的名称(LVMID:虚拟机实例运行时候的进程号) jps -m //输出虚拟机进程启动的时传递给主类main()函数的参…

笔记本电脑数据怎么恢复?笔记本电脑数据恢复用什么工具?

随着互联网时代的发展,电脑的应用越来越广泛,已经深深融入了我们的工作乃至生活当中。其中,笔记本作为可随身携带的电脑设备,其灵活、轻便等优势一直深受大家喜爱。在日常使用过程中,我们会往笔记本里存储各式各样的数…