当前位置: 首页 > news >正文

使用 Qlib 获取股票数据

Qlib 获取股票数据

Qlib 是由微软开发的一个开源量化投资研究框架,适合处理金融数据并进行量化分析。本教程将指导您如何使用 Qlib 获取股票数据。

环境准备

1. 安装 Python

确保您的电脑已安装 Python 3.7 或更高版本。您可以从 Python 官方网站 下载并安装。

2. 安装 Qlib

使用 pip 安装 Qlib。打开终端或命令行,运行以下命令:

pip install pyqlib

3. 验证安装

安装完成后,检查 Qlib 是否正确安装:

import qlib
print(qlib.__version__)

如果输出版本号,说明安装成功。

初始化 Qlib 和数据

1. 下载股票数据

Qlib 提供了一个默认的股票数据集(以中国 A 股为例)。您需要先初始化数据:

import qlib
from qlib.config import REG_CN
qlib.init(provider_uri="~/.qlib/qlib_data/cn_data", region=REG_CN)
  • provider_uri:指定数据存储路径,~/.qlib/qlib_data/cn_data 是默认路径。
  • region=REG_CN:表示使用中国市场数据。

运行后,Qlib 会自动下载中国 A 股的日频数据(若尚未下载)。数据将存储在 ~/.qlib/qlib_data/cn_data

2. 自定义数据源(可选)

如果您想使用其他数据源(如 Yahoo Finance 或其他市场数据),需要手动准备数据并转换为 Qlib 格式。Qlib 支持 CSV 格式的数据,具体格式要求请参考 Qlib 文档。

获取股票数据

以下是一个简单的代码示例,用于获取指定股票的历史价格数据:

import qlib
from qlib.data import D# 初始化 Qlib
qlib.init(provider_uri="~/.qlib/qlib_data/cn_data", region=REG_CN)# 获取某只股票的数据(如中国平安,股票代码:SH600519)
stock_code = "SH600519"
start_date = "2020-01-01"
end_date = "2023-12-31"
fields = ["$open", "$high", "$low", "$close", "$volume"]# 使用 D.features 获取数据
data = D.features([stock_code], fields, start_time=start_date, end_time=end_date)# 打印前几行数据
print(data.head())

参数说明

  • stock_code:股票代码,格式为 市场代码 + 股票编号,如 SH600519(上海证券交易所的中国平安)。
  • fields:需要获取的字段,如开盘价($open)、收盘价($close)等。
  • start_timeend_time:数据的时间范围。

输出示例

运行上述代码后,您将得到一个 Pandas DataFrame,包含指定股票在指定时间段内的价格和成交量数据,类似以下格式:

                     $open   $high    $low  $close      $volume
instrument  datetime                                          
SH600519    2020-01-02  90.50  92.30  89.80  91.20  12345678.02020-01-03  91.30  93.10  90.50  92.00  13456789.0
...

数据处理

1. 数据清洗

您可以使用 Pandas 处理获取的数据,例如:

# 去除缺失值
data = data.dropna()# 计算日收益率
data["$return"] = data["$close"].pct_change()

2. 可视化

使用 Matplotlib 绘制收盘价曲线:

import matplotlib.pyplot as plt# 提取收盘价
close_prices = data["$close"].unstack(level=0)# 绘制
plt.figure(figsize=(10, 6))
plt.plot(close_prices, label="SH600519 Close Price")
plt.title("Stock Price Trend")
plt.xlabel("Date")
plt.ylabel("Price")
plt.legend()
plt.show()
http://www.lryc.cn/news/583789.html

相关文章:

  • 从零开始的语言模型构建 CS336 第一课(一)
  • 数字孪生系统如何助力汽车零部件企业实现虚拟智控
  • Allegro PCB 手动添加元器件全流程解析
  • Pytest 预期失败测试:如何标记“已知问题”用例
  • HTTP 请求体类型详解:选择最适合的数据提交格式
  • 西部数据WD授权代理商-深圳同袍存储科技有限公司
  • QT6 源(160)模型视图架构里的树表视图 QTreeView 篇一:本类的属性, public 与 protected 成员函数 ,
  • 字节跳动高质量声音克龙文字转语音合成软件MegaTTS3整合包
  • 华为昇腾NPU与NVIDIA CUDA生态兼容层开发实录:手写算子自动转换工具链(AST级代码迁移方案)
  • 「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
  • 2025.07.09华为机考真题解析-第二题200分
  • [C#] 使用TextBox换行失败的原因与解决方案:换用RichTextBox的实战经验
  • Web 会话认证方案详解:原理、流程与安全实践
  • vue2项目部署流程
  • 腾讯云分为几个区域
  • 在vscode中安装jupyter
  • 【基础架构】——软件系统复杂度的来源(低成本、安全、规模)
  • IoT 小程序:如何破解设备互联的碎片化困局?
  • 计算机网络实验——无线局域网安全实验
  • 区块链基础知识:从比特币到区块链的全面解析
  • 使用langchain连接llama.cpp部署的本地deepseek大模型开发简单的LLM应用
  • 在mac m1基于llama.cpp运行deepseek
  • 毫米波雷达守护银发安全:七彩喜跌倒检测仪重构居家养老防线
  • Uni-app 生命周期与钩子:程序的“生命”旅程
  • 力扣 hot100 Day40
  • Datawhale AI 夏令营:基于带货视频评论的用户洞察挑战赛 Notebook(上篇)
  • 大模型 Agent(智能体)技术简介
  • 配置rsync定时同步
  • Spring AI 系列之七 - MCP Client
  • 广告匹配策略的智能化之路:人工智能大模型的方法和步骤