yfinance

2天前更新 6 0 0

美股数据获取量化组件

收录时间:
2025-07-06
yfinanceyfinance

yfinance

yfinance (Yahoo Finance 数据接口) 是一个 Python 库,用于从 Yahoo Finance 获取金融数据,包括股票、ETF、期权、加密货币等市场数据。它是 pandas-datareader 的替代方案,提供了更稳定、更灵活的接口,适用于量化交易、数据分析和金融研究。

1. 主要功能

  • 股票数据:获取历史价格、成交量、分红、拆股等信息
  • 市场数据:支持美股、A股(部分)、港股、ETF、指数等
  • 期权数据:查询期权合约的到期日、行权价、隐含波动率等
  • 加密货币:比特币(BTC-USD)、以太坊(ETH-USD)等
  • 基本面数据:财务报表、分析师预测、公司信息

2. 安装方法

pip install yfinance

建议使用anaconda或者miniconda安装,方便管理。

3. 基本用法

获取股票数据

import yfinance as yf
import matplotlib.pyplot as plt
from datetime import datetime

# 获取TSLA数据
tsla = yf.Ticker("TSLA")
end_date = datetime.now().strftime('%Y-%m-%d')
tsla_hist = tsla.history(start='2024-06-01', end=end_date)

# 创建图表
plt.figure(figsize=(12, 6))

# 绘制收盘价
plt.plot(tsla_hist.index, tsla_hist['Close'], label='Close Price', color='blue', linewidth=2)

# 添加标题和标签
plt.title(f'TSLA Stock Price (June 2024 - {end_date})', fontsize=14)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Price ($)', fontsize=12)

# 添加网格和图例
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend(fontsize=12)

# 自动调整日期显示
plt.gcf().autofmt_xdate()

# 显示图表
plt.show()
yfinance

查看市值和市盈率

import yfinance as yf

meta = yf.Ticker("META")
print("Meta 公司名称:", meta.info['longName'])
print("市值:", meta.info['marketCap'])
print("市盈率 (P/E):", meta.info['trailingPE'])

output:

Meta 公司名称: Meta Platforms, Inc.
市值: 1807828516864
市盈率 (P/E): 28.086329

更新API用法请参考

API Reference – https://ranaroussi.github.io/yfinance/reference/index.html

5. 优缺点

✅ 优点

  • 免费:无需 API Key
  • 数据全面:股票、期权、ETF、加密货币
  • 兼容 Pandas:数据直接返回 DataFrame,方便分析

❌ 缺点

  • 国内访问需要代理
  • 数据延迟:非实时(延迟约15-20分钟)
  • 稳定性依赖 Yahoo Finance:偶尔可能因 Yahoo 接口变动失效

数据统计

相关导航

暂无评论

none
暂无评论...