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

资讯详情

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

yfinance 取数:3 行代码拿数据,4 类异常一次修完的实用速查

yfinance 取数:3 行代码拿数据,4 类异常一次修完的实用速查 yfinance 取数3 行代码拿数据4 类异常一次修完的实用速查【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance写回测脚本第一道坎往往是数据从哪来、缺了怎么办、坏了怎么办。yfinance 是一个从 Yahoo Finance 接口抓取股票行情数据的 Python 库三行代码把一只股票的日线装进 pandas 表格还自带价格修复。这篇带你跑通三件事最小取数、识别并修复数据异常、批量取数。最小可运行示例pip install yfinanceimport yfinance as yf t yf.Ticker(600519.SS) df t.history(start2025-06-01, end2025-09-01, interval1d) print(df[[Open, Close, Volume]].tail())start/end两个日期字符串定精确区间interval定颗粒度也可以用period3mo这类快捷写法。记住一个硬性限制分钟级1m–30m只能回看最多约 60 天1h 级最多 2 年。返回的表以带时区的交易日期为索引列是 Open/High/Low/Close/Adj Close/Volume。读懂数据表再动手列名含义注意事项Open / High / Low / Close开、高、低、收原始价格受分红拆股影响Adj Close除权除息调整后收盘价回测算收益用它Volume成交量0 或空可能是 Yahoo 端缺失Dividends / Stock Splits分红与拆股需actionsTrue才返回Repaired?该行是否被修复仅repairTrue时出现新手最容易忽略Adj Close和Close的区别前者减去了分红与拆股影响序列连续算收益用它后者是当日真实成交价。数据异常的四种典型表现与修复美股数据比较干净非美市场问题多下面四种先记着。返回空表某区间取回来是空表直接取列就报错。多半是该股票在区间内没有记录或代码后缀写错。动手前先检查df.empty再决定跳过还是告警顺手用history_metadata()返回的lastPrice、currency佐证代码对不对必要时调整start/end区间再试。价格出现数量级跳变 某天价格比前一天大 100 倍或小 100 倍根因通常是 Yahoo 把币种单位搞混比如英镑/便士伦敦市场高发。修复history()或download()传repairTrue表里会多一列Repaired?被修正的行标True直接看这列就能确认生效。以仓库测试数据为例AET.L 在 2022-06-06 的 Close 只有 0.1455修复后还原为 14.55。除权除息日价格序列断档除息日前后 Adj Close 和 Close 一样序列出现台阶根因是 Yahoo 漏了分红调整。传repairTrue会按除权信息重算 Adj Close。真实案例1398.HK 在 2024-07-08 除息 0.3357修复前 07-04 的 Adj Close 停在 4.83修复后校正为 4.494285。修复逻辑细节见 doc/source/advanced/price_repair.rst。批量取数时偶发失败重跑时个别标的偶发失败多为网络抖动或临时限流。最直接的修复是重跑一遍通常能补齐download的threads参数可传整数限制并发网络差时调小一点降低限流概率。失败的标的会打进日志照单补跑即可。按场景选接口单只、一次取数yf.Ticker(600519.SS).history(period3mo)—— 日期索引的普通 DataFrame最轻批量、要一张合并宽表yf.download(tickers, group_bycolumn)—— 多级列一级指标二级标的批量、按标的分组yf.download(tickers, group_byticker)—— 一级列是 ticker横向对比方便批量、每只要一个对象yf.Tickers(600519.SS 0700.HK)—— 空格分隔字符串每只各得一个 Ticker 对象按条件选股yf.EquityQueryyf.screen—— 先搭查询再执行 以上选顺手的就行没有银弹示例见 doc/source/reference/examples/download.py。稳定性与性能三件小事本地缓存时区与 cookie 默认存用户目录可用set_tz_cache_location换自定义路径并发控制download默认并发限流明显时显式传threads4修复后验证币种看history_metadata的currency别信Ticker.infoimport yfinance as yf yf.set_tz_cache_location(custom/cache/path)各系统默认路径见 doc/source/advanced/caching.rst。做到这三点就够别过度设计。动手验证10 分钟任务import yfinance as yf df yf.download([600519.SS, 0700.HK], period6mo, repairTrue) print(df[Repaired?].unique())打印结果里全是False说明这批数据正常出现True就对照那行的前后数值看它修了什么。下次写回测记住这个闭环就够了history拿数repairTrue修数。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表