项目概述
yfinance 是一个功能强大的开源Python库,专门用于从Yahoo Finance API下载全球金融市场数据。由Ran Aroussi开发维护,GitHub地址为 https://github.com/ranaroussi/yfinance。该项目提供了简单直观的Pythonic接口,让开发者能够轻松获取股票、基金、期权等多种金融产品的实时和历史数据。
核心功能与架构
1. 模块化设计架构
yfinance采用清晰的模块化设计,主要分为三大核心层次:
- 数据获取层:Ticker类(核心入口点)、Tickers类(批量处理)、数据下载模块
- 数据处理层:Scrapers模块(数据抓取器)、history.py(历史价格)、fundamentals.py(基本面数据)
- 功能扩展层:Domain模块(行业和市场数据分类)
2. 全面数据覆盖
yfinance支持获取各类金融资产数据:
- 股票:全球主要交易所的股票价格和基本面
- ETF基金:交易所交易基金的详细持仓信息
- 指数:主要市场指数的历史表现
- 加密货币:主流数字货币的实时行情
- 期权数据:期权到期日、期权链等衍生品信息
3. 智能数据处理
- 价格异常检测与修复:自动识别并修正重复值、异常波动等问题
- 股息分配处理:准确处理股息事件对价格的影响
- 股票拆分调整:自动处理股票拆分后的价格修正,确保数据准确性