如何批量下载雅虎财经的行情数据?yfinance 使用指南

如何批量下载雅虎财经的行情数据?yfinance 使用指南

【免费下载链接】yfinance Download market data from Yahoo! Finance's API 【免费下载链接】yfinance 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

晚上九点,你想复盘 MSFT 最近一个月的日线走势。在 Yahoo Finance 网页上只能一页页翻看,而用 yfinance 几行 Python 就能把数据拉进 pandas 的 DataFrame,直接画图、回测、统计。这是一款开源的免费 Python 库,它对接 Yahoo! Finance 的公开 API,帮你批量获取股票、ETF、基金的行情与财务数据。

⚡ 安装步骤

前置条件:本机装好 Python 3(官方标注支持 3.6+)。安装只需一条命令:

pip install yfinance

装完导入即可用,无需注册账号,也不用配置密钥。最短跑通路径:

import yfinance as yf
df = yf.Ticker("MSFT").history(period="1mo")

df 就是 Open、High、Low、Close、Volume 的日线表,可直接喂给 pandas 或 matplotlib。

功能拆解:常用模块怎么用

  • 单只股票 Ticker:yf.Ticker("MSFT") 之后,.info 拿公司概况,.history(period='1mo') 拿行情,.quarterly_income_stmt 拿季度利润表,.option_chain(...) 拿期权链。
  • 多只股票 download:yf.download(['MSFT','AAPL','GOOG'], period='1mo') 一次拉多只。返回的是多级列名 DataFrame,第一层是代码,第二层是 OHLC 字段,multi_level_columns 页面讲怎么把这种结构读回和存 CSV。
  • 实时行情 WebSocket:WebSocket / AsyncWebSocket 支持同步与异步流式推送,示例见 live_sync.py。
  • 搜索与筛选:Search 查报价和新闻;Sector / Industry 看板块;Screener 加 EquityQuery 按条件筛标的,示例见 sector_industry_ticker.py。
  • 基金数据:yf.Ticker('SPY').funds_data 可拿 .description 和 .top_holdings(前十大持仓)。

适合谁用

  • 如果你在写策略回测,需要多只标的、多区间的日线或分钟线,download 帮你跳过手工翻页。
  • 如果你在跟踪基金或 ETF,funds_data 能拿到持仓和净值,比在网页上翻基金页面省事。
  • 如果你在做多市场对比,Screener 与 Sector 让你按板块、行业批量取数,再叠加 Ticker.info 拿基本面字段。

进阶:价格修复与实用配置

Yahoo 的公开数据在美国市场之外偶尔出现分红调整缺失、拆股未还原、数据行丢失、货币被当成"分"处理导致 100 倍偏差等情况。history() 与 download() 提供 repair=True 参数尝试自动修复这几类错误,返回表多一列 Repaired? 标记哪些行被改过。

AET.L 示例:yfinance 的价格修复识别出 100 倍货币错误并修正

其他实用配置:

  • 代理与重试:yf.config.network.proxy = "PROXY_SERVER"、yf.config.network.retries = 2(指数退避 1s/2s/4s)。
  • 调试日志:yf.config.debug.logging = True 打开详细日志。
  • 本地化字段:yf.config.locale.lang / region 切换后,Ticker.info 的公司名等本地化字段会跟随(仅对该 locale 原生上市标的生效)。
  • 缓存位置:默认在本地缓存时区与 cookies,可用 yf.set_tz_cache_location(...) 改路径。
平台默认缓存路径
WindowsC:/Users/<USER>/AppData/Local/py-yfinance
Linux/home/<USER>/.cache/py-yfinance
MacOS/Users/<USER>/Library/Caches/py-yfinance

数据流向与参与方式

yfinance 运行时需要联网向 Yahoo! Finance 的公开 API 发请求,数据拉下来后存在你自己的机器内存里,怎么存(DataFrame、CSV、数据库)由你决定。本地只额外缓存时区和 cookies,不上传你的任何数据。注意:yfinance 是社区开源项目,未获 Yahoo 官方背书,商标归 Yahoo 所有;数据本身的使用请遵守 Yahoo 的服务条款,官方定位是个人研究与教育用途。

yfinance 把"从 Yahoo Finance 批量拿行情"压缩成了几行代码,免费开源,采用 Apache 2.0 许可。想参与:clone 仓库到本地,看 CONTRIBUTING.md 了解提 Issue 与 PR 的方式,或直接阅读 文档源码 熟悉 API。

git clone https://gitcode.com/GitHub_Trending/yf/yfinance

【免费下载链接】yfinance Download market data from Yahoo! Finance's API 【免费下载链接】yfinance 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值