ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

yfinance 完整指南:3 行代码下载股票历史行情数据,直接进 pandas 分析

yfinance 完整指南:3 行代码下载股票历史行情数据,直接进 pandas 分析 yfinance 完整指南3 行代码下载股票历史行情数据直接进 pandas 分析【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance你手头有一组股票代码想拉出最近一年的日线做对比。用 yfinance 下载历史行情数据几行 Python 代码就能拿到一个干净的时间序列 DataFrame。数据来自 Yahoo Finance 的公开 API免费、无需注册、不用申请 API key装完即用。先跑起来yfinance 安装步骤与第一个请求先用 pip 装上库然后跑第一条下载请求pip install yfinanceimport yfinance as yf df yf.download(AAPL, period5d) print(df.tail())yf.download会请求 Yahoo 服务器返回最近 5 个交易日的日线。输出是一个时间戳做索引的 DataFrame列为 Open、High、Low、Close、Adj Close、Volume。yfinance 自己不存数据每次调用都实时请求所以拿到的总是最新一批数据。把数据真正用起来拿到数据后最常见的任务是三件看单只股票的走势、批量对比一组标的、以及让网络请求别动不动就断。下面每个小任务给你可直接抄的写法。拉取单只股票的历史行情数据做个股分析时Ticker.history比 download 更直接。下面这段拉 TSLA 最近一年的日线并顺手画出一张收盘价走势图import yfinance as yf tsla yf.Ticker(TSLA) hist tsla.history(period1y, interval1d) hist[Close].plot()关键参数period时间范围可选1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max只指定一个时默认1mointervalK 线粒度1d日线、1wk周线、1mo月线也支持15m、60m这类分钟线auto_adjust默认 True返回的价格会自动用分红拆股事件做复权什么时候用得到你只想研究一只股票不想在批量接口里挑字段时这是最短路径。注意分钟级数据最多只能回溯最近 730 天区间拉太长会返回空结果。yfinance 批量下载配置一次对比多只标的对比一组股票时把代码放进列表交给downloaddata yf.download( [MSFT, GOOGL, AMZN, AAPL], start2024-01-01, end2024-12-31, group_byticker, ) data[MSFT][Close]关键参数group_byticker列变成股票代码 → 字段两层结构取数时用data[MSFT][Close]即可start/end起止日期字符串YYYY-MM-DD与period二选一auto_adjust同样默认 True保证多只标的的复权口径一致什么时候用得到横向对比、选因子、做组合回测凡是涉及两只以上标的的活儿都用批量接口一次拉完。另外非美股代码要带交易所后缀比如港股1810.HK、日股7203.T漏了后缀会直接拉空数据。让网络请求更稳重试、代理与缓存yfinance 会把时区、cookie 等数据缓存在用户目录下以减少重复请求网络不好时再配上自动重试import yfinance as yf yf.config.network.retries 2 yf.config.network.proxy http://proxy-server:8080 yf.set_tz_cache_location(my_stock_cache)关键参数retries失败后的自动重试次数按 1s、2s、4s 的间隔指数退避proxy走代理访问适合网络受限的环境set_tz_cache_location把缓存目录指到自定义路径默认在用户主目录下什么时候用得到批量拉几百只股票、跑在服务器或 CI 上、或者你的网络必须走代理时。完整的配置项列表可以翻 config.rst缓存机制的说明在 caching.rst。数据不对劲时按这个顺序排查如果你发现 download 返回了空 DataFrame 或抛网络异常先确认 ticker 后缀和日期区间合法再把yf.config.network.retries调大、timeout放宽同时把yf.config.debug.hide_exceptions设成False让真实报错浮出来而不是被吞掉。如果你发现收盘价突然翻倍、或者某天整行缺失通常是分红、拆股事件导致的复权数据错误。先用Ticker.calendar核对分红和拆股日期对照事件前后的价格变化再开启history的repairTrue参数让库自动修复price_repair.rst 有完整说明。如果你发现公司名等信息显示为英文而不是本地化版本Yahoo 按请求语言返回字段默认是en-US。把yf.config.locale.lang和region改成目标地区即可但只有原生上市于该地区的股票才返回翻译值。如果你发现拿到的价格和交易所实时价对不上Yahoo 的数据本身有分钟级延迟部分市场不提供逐笔推送。对延迟敏感的场景改用 WebSocket 订阅别用 Ticker 轮询硬扛。接下来可以往哪走跑通下载之后有两个自然的方向用yf.screen()配合 EquityQuery 按市值、市盈率这类条件批量筛股票或者用yf.WebSocket/yf.AsyncWebSocket搭一条实时行情订阅管道。底层的抓取逻辑在 yfinance/scrapers/history.pyAPI 参考入口在 doc/source/reference/index.rst想深挖实现可以从这两处入手。项目维护上采用 main、dev 加功能分支的协作模式跟进版本更新时可以参考这个分支模型建议的起步路径先把单只股票的历史行情拉下来存成 CSV确认行数和事件日期都完整再扩到批量下载和回测流程。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表