尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

yfinance 股票数据获取实战:10 分钟拉出回测级历史行情

yfinance 股票数据获取实战:10 分钟拉出回测级历史行情 yfinance 股票数据获取实战10 分钟拉出回测级历史行情【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance你想一次拉十几只股票的数据做个简单回测yfinance 这个免费的 Python 库正好够用。它从 Yahoo! Finance 抓取历史行情、基本面和实时推送结果直接整理成 pandas 的 DataFrame不用自己拼请求、解析 JSON。投资爱好者、数据分析师、量化初学者都能上手。01 先看到结果最短的一条命令长这样df yf.download(AAPL, period5d)它会返回一个 DataFrame每个交易日一行列是 Open、High、Low、Close、Adj Close、Volume 六列。后面算收益率、画回测曲线都基于这张表。装好依赖就能跑完整首段代码如下pip install yfinanceimport yfinance as yf df yf.download(AAPL, period5d) # 最近5个交易日 print(df.tail())跑完你会看到 5 行日线索引是交易日价格带时区信息。到这里你的第一条股票行情数据已经到手。02 30 秒看全能力你的需求对应入口一句备注批量下多只股票历史行情yf.download()group_byticker返回分层列单只股票行情、基本面、财报yf.Ticker().history()、.calendar等属性按关键词找股票代码和新闻yf.Search()/yf.Lookup()输入名字返回匹配列表按条件批量筛选股票yf.screen()EquityQuery可按市值、市盈率等条件过滤订阅实时行情推送yf.WebSocket异步版为AsyncWebSocket全部配置项重试、代理、locale 等见 doc/source/advanced/config.rst。先说清边界数据有分钟级延迟项目不提供 SLA也不保证接口长期稳定。它适合个人研究和学习别直接当生产级交易系统的实时数据源。03 三个真实场景场景一拿单只股票五年周线你要做什么看一只股票的长期走势用周线减少噪音。tsla yf.Ticker(TSLA) hist tsla.history(period5y, interval1wk) print(hist[[Close, Volume]].tail(10))你会看到每周收盘一行。这里有个坑interval支持1d、1h、1wk等但小时级数据只覆盖最近730 天区间拉太长会返回空结果。场景二一次下载四只股票对比你要做什么把一组股票放进列表一次性取回整块数据。data yf.download( [MSFT, GOOGL, AMZN, AAPL], start2024-01-01, end2024-12-31, group_byticker, ) print(data[MSFT][Close].head())设置group_byticker后取数就是data[MSFT][Close]这种两级下标。坑在这非美股代码要带交易所后缀比如港交所1810.HK、东京7203.T少了后缀会拿不到数据。场景三网络不稳时自动重试你要做什么避免一次网络抖动就让整批下载失败。# 指数退避重试间隔 1s、2s、4s yf.config.network.retries 2 df yf.download(AAPL, period5d)默认retries是 0即不重试设成 2 后瞬断会自动补试。另外 yfinance 会把时区、cookie 等缓存在用户目录下若目录不可写可以用yf.set_tz_cache_location(my_stock_cache)把缓存指到自定义路径。04 坑点自检清单 ⚠️遇到空 DataFrame 或网络异常 → 先查 ticker 是否带对交易所后缀、日期区间是否合法 → 再试yf.config.debug.hide_exceptions False看真实报错。遇到价格突然跳变或整行缺失 → 先用Ticker.calendar核对分红和拆股日期 → 再看 价格修复说明可用repairTrue处理 100x 单位错误、缺行、分红复权错误。遇到公司名显示英文 → 先查yf.config.locale.lang和region默认en-US/US→ 再确认该股是否原生上市于目标地区否则拿不到翻译值。遇到实时价对不上交易所 → 先接受 Yahoo 数据存在分钟级延迟的事实 → 再试yf.WebSocket订阅并自行核对延迟范围。05 下一步去哪用yf.screen()配EquityQuery按市值、市盈率批量筛股实现见 yfinance/screener/screener.py。用WebSocket/AsyncWebSocket搭实时行情订阅管道入口在 yfinance/live.py。抓行情的核心逻辑在 yfinance/scrapers/history.py完整 API 参考在 doc/source/reference/index.rst。项目采用 main / dev / 功能分支的协作模式跟进版本更新时可参考这张分支图06 最后先跑通 5d 最小示例再换成你自己的代码和区间验证数据完整后再展开批量下载。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表