使用 Qlib 获取股票数据
如果您想使用其他数据源(如 Yahoo Finance 或其他市场数据),需要手动准备数据并转换为 Qlib 格式。Qlib 支持 CSV 格式的数据,具体格式要求请参考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_time
和end_time
:数据的时间范围。
输出示例
运行上述代码后,您将得到一个 Pandas DataFrame,包含指定股票在指定时间段内的价格和成交量数据,类似以下格式:
$open $high $low $close $volume
instrument datetime
SH600519 2020-01-02 90.50 92.30 89.80 91.20 12345678.0
2020-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()

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)