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

2023-11-10

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

参考链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qlib股票数据获取与查看(Qlib学习1) 的相关文章

  • Python Pandas 滚动聚合一列列表

    我有一个简单的数据框 df 和一列列表lists 我想根据以下内容生成一个附加列lists The df好像 import pandas as pd lists 1 1 2 1 2 3 3 2 9 7 9 4 2 7 3 5 create
  • Vimeo API:获取下载所有视频文件的链接列表

    再会 我正在尝试从 Vimeo 帐户获取所有视频文件的列表 直接下载的链接 有没有办法在 1 GET 请求中做到这一点 好的 如果是API限制的话 就100倍 我有硬编码脚本 我在其中发出 12 个 GET 请求 1100 多个视频 根据文
  • docker 容器中的“(pygame parachute)分段错误”

    尝试在 docker 容器中使用 pygame 时出现以下错误 我想从容器中获取显示 Fatal Python error pygame parachute Segmentation Fault 重现 Docker已安装 docker ru
  • 如何替换Python字符串中的正确字母

    任务是 您的任务是纠正数字化文本中的错误 您只需处理以下错误 S 被误解为 5 O 被误解为 0 I 被误解为 1 我的代码 def correct string for i in string if 5 in string string
  • 将整数系列转换为交替(双元)二进制系列

    我不知道如何最好地表达这个问题 因为在这里谷歌搜索和搜索总是让我找到更复杂的东西 我很确定这是基本的东西 但对于我的生活来说 我找不到一个好的方法来做到这一点下列 给定一个整数序列 比如说 for x in range 0 36 我想将这些
  • 动态字段取决于 WTForms 的先前字段

    我正在使用 WTForms 制作表格 目前 我有这个 class UploadForm flask wtf Form fichier wtforms fields FileField u Fichier description wtform
  • Pandas 字典键到列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 index column1 e1 u c680 5 u c681 1 u c682 2 u c57 e2 u c680 6 u c681 2 u c682 1 u c57 e3 u c68
  • Python 在哪些系统上不使用 IEEE-754 双精度浮点数

    Python 对 IEEE 754 浮点运算进行了各种引用 但不保证1 https docs python org 3 tutorial floatingpoint html 2 https pythondev readthedocs io
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • Python在没有pandas的情况下解码excel表

    我正在尝试在 python 中读取 excel 文件而不使用pandas or xlrd 我一直在尝试将结果转换为bytes to utf 8没有任何成功 xls 文件中的数据 colA colB colC spc 1D0 20190705
  • Python脚本从字母和两个字母组合生成单词

    我正在编写一个简短的脚本 它允许我使用我设置的参数生成所有可能的字母组合 例如 b a 参数 单词 5 个字母 第三 第五个字母 b a 第一个字母 ph sd nn mm 或 gh 第二 第四个字母 任意元音 aeiouy 和 rc 换句
  • 如何将 URL 添加到 Telegram Bot 的 InlineKeyboardButton

    我想制作一个按钮 可以从 Telegram 聊天中在浏览器中打开 URL 外部超链接 目前 我只开发了可点击的操作按钮 update message reply text Subscribe to us on Facebook and Te
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 将 Django 中的所有视图限制为经过身份验证的用户

    我是 Django 新手 我正在开发一个项目 该项目有一个登录页面作为其索引和一个注册页面 其余页面都必须仅限于登录用户 如果未经身份验证的用户尝试访问这些页面 则必须将他 她重定向到登录页面 我看到 login required装饰器会将
  • 类返回语句不打印任何输出

    我正在学习课程 但遇到了问题return语句 它是语句吗 我希望如此 程序什么也没有打印出来 它只是结束而不做任何事情 class className def createName self name self name name def
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • AWS 将 MQTT 消息存储到 DynamoDB

    我构建了一个定期发送 MQTT 消息的 python 脚本 这是发送到后端的 JSON 字符串 Id 1234 Ut 1488395951 Temp 22 86 Rh 48 24 在后端 我想将 MQTT 消息存储到 DynamoDB 表中
  • 为什么从 openAI 导入 Universe 模块时出现“无效语法”错误

    当我导入时universe来自 openAI 的模块 我收到以下错误 Traceback most recent call last File
  • SQLAlchemy 与 count、group_by 和 order_by 使用 ORM

    我有几个函数需要使用 count group by 和 order by 进行一对多连接 我使用 sqlalchemy select 函数生成一个查询 该查询将返回一组 id 然后我对其进行迭代以对各个记录执行 ORM 选择 我想知道是否有
  • ProcessPoolExecutor 传递多个参数

    ESPN播放器免费 class ESPNPlayerFree def init self player id match id match id team 团队名单1 277906 cA2i150s81HI3qbq1fzi za1Oq5CG

随机推荐

  • 100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)

    文章目录 0 专栏导读 1 普通柱状图 2 簇状柱形图 3 堆积柱形图 4 横向柱状图 5 横向双向柱状图 6 百分比堆积柱形图 7 3D柱形图 8 3D堆积柱形图
  • Xilinx Vivado 流水灯实验

    流水灯设计时需要考虑哪些因素 流水灯设计流程的基本步骤及各步骤主要功能 各文件的作用 流水灯IPI设计流程的基本步骤及各步骤主要功能 IP集成设计的优点 文件注释 verilog语言 当时这部分花时间自学的
  • python:thread模块

    该包在 Python 2 中属于正常可用状态 但在 Python 3 中处于即将废弃的状态 虽然还可以用 但包名被改为 thread 使用 thread 包首先要引入该包 在 Python 2 中使用下面的语句来引入 import thre
  • 实时音频编解码之十七 Opus解码 SILK解码

    本文谢绝任何形式转载 谢谢 5 2 Silk解码流程 解码器线性预测层主要使用长短时预测合成滤波器对激励信号滤波实现 线性预测层内部的工作带宽为NB MB以及WB 对于SWB以及FB的混合编码工作模式 线性预测层依然工作于WB带宽下 经过区
  • Qt Creator 5.9.9下载与安装图解详细教程

    Qt Creator 5 9 9下载与安装图解详细教程 一 Qt Creator 下载 推荐最新版5 9 9 网上可能推荐4 x x 但实际上不是做专业UI项目的话Qt Creator版本越新越好 其一 安装包给你集合到一个 exe里面 不
  • 期货开户手续费有哪些优惠?

    在网上随便找一位期货公司经纪人 直接说你有帐户但手续费高 现在想换一家手续费低的期货公司 这样通常就能开到最低手续费帐户了 或者直接点问 手续费能不能加一分 简单明了 如果手续费相同的情况下 还得考虑期货公司的保证金 交易软件 服务等因素来
  • php layui post文件上传,layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例...

    本文实例讲述了layui框架实现文件上传及TP3 2 3对上传文件进行后台处理操作 分享给大家供大家参考 具体如下 layui框架是1 0 9版本 首先html页面代码如下 js代码如下 layui use upload function
  • UDP网络基础知识简介

    作者简介 CSDN2021博客之星亚军 新星计划导师 博客专家 哪吒多年工作总结 Java学习路线总结 搬砖工逆袭Java架构师 关注公众号 哪吒编程 回复1024 获取Java学习路线思维导图 大厂面试真题 加入万粉计划交流群 一起学习进
  • OpenGL学习笔记(二)-着色器-纹理

    参考网址 LearnOpenGL 中文版 哔哩哔哩教程 第一章 入门 1 3 着色器 1 3 1 基本结构 利用着色器语言编写着色器 以顶点着色器和片段着色器为例 在着在顶点着色器中输出颜色变量vertexColor 在片段着色器中输入变量
  • JDK 17 营销初体验 —— 亚毫秒停顿 ZGC 落地实践

    前言 自 2014 年发布以来 JDK 8 一直都是相当热门的 JDK 版本 其原因就是对底层数据结构 JVM 性能以及开发体验做了重大升级 得到了开发人员的认可 但距离 JDK 8 发布已经过去了 9 年 那么这 9 年的时间 JDK 做
  • 如何理解凸优化中的共轭函数的定义?

    共轭函数的意义主要就是 一个函数即便不是凸函数 但通过共轭法获得一个凸函数 很方便求解全局最优解的问题 另外 共轭函数亦称对偶函数 极化函数 函数的某种对偶变换 过多的东西我就不再赘述了 此处我是想着重讲一讲为什么共轭函数是可以 保凸 的
  • 中国物流,驶入大航海时代

    出海的一体化 不仅仅是物流的一体化 更是产业链 供应链的一体化 在诸多问题下 想要帮助企业更好地出海 就不能只专注于自身的长板 而是需要先补齐短板 作者 斗斗 编辑 皮爷 出品 产业家 出海时代真的要来了 这种感觉从未如此强烈过 在过去两年
  • React项目中使用svg组件

    使用react svg模块 安装依赖 yarn add D react svg 新建index js文件 import React from react import ReactSVG from react svg function get
  • 【笔记】scanf函数:读取参照getchar()

    Reference 浅谈关于空格和回车对于输入函数的影响 程序猿的探索之路的博客 CSDN博客 c语言scanf输入打空格的影响 Note 回车键 依次包含 LF NL line feed new line 十进制 10 和 CR carr
  • css怎么设置div滚动条

    随着网页及移动端应用的发展 滚动条成为了一种不可或缺的用户体验 而 CSS3 提供的一系列滚动条样式设置使得我们可以更加灵活地定制滚动条的样式 今天我们就来一起探讨一下如何利用CSS来设置div滚动条 一 基础设置 我们在HTML中定义一个
  • 阿里云上传图片的使用,AccessKey查看,入门级别

    阿里云上传图片的使用 可能很多人想上传图片到云端 却连阿里云怎么使用都还不会 我这个是入门级别的教程 一步一步来 我这里先附上我自己的前端上传图片教程代码vue前端直传阿里云 首先就是点击阿里云之后进行注册 注册就不贴了啊 阿里云是可以直接
  • css选择同时有两个类名的标签

    这个技巧比较厉害 记录一下 链接
  • Anaconda查看、创建、切换、删除虚拟环境

    Anaconda查看 创建 切换 删除虚拟环境 参考链接 1 查看已有虚拟环境 在命令行输入以下命令 conda info envs 这里的base 带星号的 代表基层或者当前虚拟环境 paddle是我新建的一个虚拟环境 2 创建新的虚拟环
  • 【微服务部署】五、Jenkins+Docker一键打包部署NodeJS(Vue)项目的Docker镜像步骤详解

    NodeJS Vue 项目也可以通过打包成Docker镜像的方式进行部署 原理是先将项目打包成静态页面 然后再将静态页面直接copy到Nginx镜像中运行 一 服务器环境配置 前面说明了服务器Nginx的安装和配置 这里稍微有些不同 但是因
  • Qlib股票数据获取与查看(Qlib学习1)

    文章目录 Qlib基本信息 数据使用方法 1 借助Qlib下载数据 2 查看相关数据 参考链接 Qlib基本信息 Qlib Github主页 https github com microsoft qlib Qlib quickstart h