yfinance 是一个 Python 库,用于从 Yahoo Finance 获取金融数据。它可以下载历史行情、获取股票基本信息、分析趋势,操作简单高效。这篇教程会带你从安装到实际使用,把核心功能过一遍。
1. 安装
先确保系统已安装 yfinance:
pip install yfinance
2. 下载历史股票数据
用 yfinance.download 方法获取历史股价:
import yfinance as yf
# 指定股票代码和日期范围
data = yf.download("AAPL", start="2020-01-01", end="2023-12-31")
# 显示前几行数据
print(data.head())
这段代码获取了 Apple(AAPL)在指定日期范围内的历史数据。
自定义参数
- 同时下载多只股票数据:
data = yf.download(["AAPL", "MSFT", "GOOGL"], start="2020-01-01", end="2023-12-31")
- 调整数据间隔(日线、周线等):
data = yf.download("AAPL", interval="1wk")
3. 获取股票信息
通过 Ticker 对象获取股票的详细信息:
# 创建 Ticker 对象
apple = yf.Ticker("AAPL")
# 获取公司信息
info = apple.info
print(info)
# 提取特定字段
print("行业:", info.get("sector"))
print("市值:", info.get("marketCap"))
其他可用信息
- 历史分红:
print(apple.dividends)
- 拆股记录:
print(apple.splits)
- 分析师建议:
print(apple.recommendations)
4. 获取财务报表
可以获取利润表、资产负债表和现金流量表:
# 利润表
print(apple.financials)
# 资产负债表
print(apple.balance_sheet)
# 现金流量表
print(apple.cashflow)
5. 下载期权数据
获取股票的期权数据:
# 可用的期权到期日列表
print(apple.options)
# 获取指定日期的期权链
options_chain = apple.option_chain("2024-01-19")
print(options_chain.calls)
print(options_chain.puts)
6. 股票趋势分析
yfinance 可以和 pandas、matplotlib 配合做数据分析和可视化:
import matplotlib.pyplot as plt
data['Close'].plot(title="AAPL Stock Price")
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.show()
7. 使用建议
- 数据缓存:用
yfinance.cache_enabled()启用缓存,减少 API 调用次数。 - 错误处理:大批量请求时一定要加异常处理逻辑。
- 频率限制:注意 Yahoo Finance 的 API 调用频率限制,避免被封。
yfinance 让金融数据获取变得简单直接,是量化研究和数据分析的基础工具之一。