ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

yfinance 股票数据指南:5 分钟拉取历史行情,量化分析起步

yfinance 股票数据指南:5 分钟拉取历史行情,量化分析起步 yfinance 股票数据指南5 分钟拉取历史行情量化分析起步【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinanceyfinance 是一个从 Yahoo! Finance 公开接口抓取股票数据的 Python 库把历史行情、基本面、批量下载和实时推送统一整理成 pandas 的 DataFrame 或字典。不用自己拼请求参数、解析 JSON几行代码就能拿到可直接分析的行情表。适合投资爱好者、数据分析师和想入门量化分析的开发者。yfinance 能做什么、不能做什么yfinance 封装了 Yahoo! Finance 的公开接口行情类调用返回以交易日为索引、带 Open/High/Low/Close/Volume 列的 DataFrame基本面和事件类调用返回字典搜索类调用返回可直接遍历的查询结果。库本身不存储任何行情每次调用都实时请求 Yahoo 的服务器只有时区、cookie、ISIN 映射这类辅助数据会写进本地缓存。入口一句话用途yf.download()批量下载多只股票的历史行情yf.Ticker().history()拉单只股票指定区间、指定粒度的 K 线yf.Search()/yf.Lookup()按关键词查股票代码和相关新闻yf.screen()按市值、市盈率等条件批量筛选股票yf.WebSocket订阅实时行情推送边界也说清楚yfinance 定位是个人研究与学习工具不提供 SLA不保证接口长期稳定不适合直接给生产级交易系统当实时数据源。5 分钟跑通第一条股票数据安装依赖只需一行命令pip install yfinance再跑这段最小示例拉取 AAPL 最近 5 个交易日的日线import yfinance as yf # period 支持 1d/5d/1mo/3mo/1y/max 等取值 df yf.download(AAPL, period5d, interval1d) print(df.tail())跑完会打印一个表格Open、High、Low、Close、Volume 各一列索引是交易日这就是后续算收益率、做回测的基础数据 。默认auto_adjustTrue时 Close 已经是复权价想看未复权的原始价传auto_adjustFalse会多出一列Adj Close方便对照。拿到df后df[Close].pct_change()就是逐日收益率回测可以直接用。三种取数姿势历史行情、批量下载与缓存配置拉单只股票完整历史指定区间与 K 线粒度做个股分析时通常要指定时间区间和 K 线粒度用Ticker.history比download更直接。import yfinance as yf tsla yf.Ticker(TSLA) # start/end 用 YYYY-MM-DD 字符串interval 支持 1d/1wk/1h/30m 等 hist tsla.history(start2024-01-01, end2024-12-31, interval1d) print(hist[[Close, Volume]].tail(10))hist是 DataFrame默认actionsTrue会附送 Dividends 和 Splits 两列核对分红拆股时省一次单独查询。提示分钟级数据1m、5m这类只支持最近 60 天内的区间start 拉太长会返回空结果日线及以上粒度没这个限制。批量下载多只股票横向对比一组标的对比一组股票时把多个代码放进列表download一次性返回分层列的 DataFrame不需要逐只建 Ticker。import yfinance as yf # group_byticker 让列按股票 → 字段分组取数用 tech[MSFT][Close] tech yf.download( [MSFT, GOOGL, AMZN, AAPL], start2024-01-01, end2024-12-31, group_byticker, ) print(tech[MSFT][Close].head())注意非美股代码要带交易所后缀如1810.HK港交所、7203.T东京默认group_bycolumn时列是字段 → 股票横向对比股票时改成ticker更顺手。配置缓存与网络重试让批量取数更稳数据能跑通之后把缓存路径、重试、代理这类基础设施配好批量取数的成功率会明显提升 。import yfinance as yf # 时区/cookie 缓存指到自定义目录默认在系统用户缓存目录 yf.set_tz_cache_location(my_stock_cache) # 网络瞬断时自动重试 2 次 yf.config.network.retries 2 # 需要走代理访问时配上代理地址 yf.config.network.proxy http://proxy-server:8080提示retries默认是0不重试完整配置项见 doc/source/advanced/config.rst缓存机制说明见 doc/source/advanced/caching.rst。数据不对排查清单 ⚠️返回空 DataFrame 或网络超时常见原因Yahoo 接口偶发限频、超时或代码缺交易所后缀。处理方式设yf.config.network.retries 2开启自动重试非美股确认带了后缀如1810.HK、7203.T。价格突然跳变或某天整行缺失常见原因分红、拆股导致的复权数据错误或数据源漏报。处理方式先用Ticker.calendar核对分红和拆股日期再给history()传repairTrue自动修复 100x 单位错乱和缺行细节见 doc/source/advanced/price_repair.rst。公司名等信息显示为英文常见原因Yahoo 按请求 locale 返回本地化字段默认是en-US。处理方式会话开始时设yf.config.locale.lang zh-CN、yf.config.locale.region CN只有原生上市于该地区的股票才返回翻译值。实时价格与交易所对不上常见原因Yahoo 数据存在分钟级延迟部分市场不提供逐笔推送。处理方式对延迟敏感的场景改用yf.WebSocket或yf.AsyncWebSocket订阅推送并自行核对延迟范围。下一步往哪走用yf.screen()配合EquityQuery按市值、市盈率等条件批量筛股接口说明见 doc/source/reference/yfinance.screener.rst用WebSocket/AsyncWebSocket搭实时行情订阅管道源码在 yfinance/live.py把行情落地到本地数据库再结合 pandas 搭自己的回测流程项目采用 main / dev / 功能分支的协作模式跟进版本更新时分支结构一目了然先把最小示例跑通把 ticker 换成自己关注的代码、调整时间区间验证数据完整后再展开批量下载是最省事的起步路径。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表