使用 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.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()