3 行代码拿到股票行情:yfinance 从取数到修数的新手路径

发布时间:2026/10/8 1:35:16
3 行代码拿到股票行情:yfinance 从取数到修数的新手路径
3 行代码拿到股票行情yfinance 从取数到修数的新手路径【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance写回测脚本、盯盘程序第一步常卡在行情数据上。yfinance 是个 Python 库替你从 Yahoo Finance 拉日线分钟线坏价格还能自动修复。最小能跑的版本import yfinance as yf t yf.Ticker(600519.SS) df t.history() # 默认近 1 个月日线跑完你会看到一张以带时区的交易日期为索引的表Open、High、Low、Close、Adj Close、Volume 六列to_csv一句就能落盘。你的场景走哪条路如果你要单只股票的日线就Ticker.history()配start、end两个日期参数定精确区间。如果你要一次拉多只还要合并成一张宽表就yf.download(tickers)group_byticker让一级列是标的换column则一级列是指标。如果你要分钟级数据就留意interval参数分钟级线最多回看 60 天小时级线最多 2 年超了直接返回空。如果你要给每只票各配一个独立对象就yf.Tickers(600519.SS 0700.HK)空格分隔字符串底层和download同一条路。如果你要市场、行业这类背景信息就yf.Market、yf.Sector、yf.Industry别和行情接口混用。取数后先过一遍质检 非美市场的数据毛病多。拿到表别急着算按顺序过一遍表是空的先判断df.empty再决定跳过或告警别直接取列。某天价格突然变成前后日的 100 倍或 1/100这是币制单位混乱伦敦市场高发history或download加repairTrue就能修除权日前后Adj Close和Close一样、序列出现台阶分红漏调了repair会按除权信息重算Adj Close真实案例可看 价格修复文档。日线中间缺行、成交量为 0repair会用 1 小时数据重建回填修完核对行数和Repaired?标记批量下载时个别标的偶发失败网络抖动居多直接重跑一遍通常就补齐了。默认就够用手动调这几处缓存默认落在用户目录Linux 为~/.cache/py-yfinance时区表和 cookie 落盘避免重复请求要换位置就yf.set_tz_cache_location(your/path)各系统默认路径见 缓存文档。并发默认threadsTrue线程数取标的数与 CPU 核数×2 的较小值限流明显时显式传threads4压并发。真实币种别信Ticker.info看Ticker.get_history_metadata()[currency]——币种混乱正是 100 倍差价的常见来源。数据不对时的排查顺序 先查 metadata调Ticker.get_history_metadata()看currency和lastPrice两个字段对不上你预期的币种或量级说明代码后缀可能写错了。再查区间确认这只票在你给的start/end里确实有交易空表多半是区间或代码问题不是库的问题。最后看Repaired?列repairTrue跑完表里多出这列全 False 说明数据本来就干净个别 True 的行就是被改过的行拿它当验收标准。15 分钟练一遍就通yf.download([600519.SS, 0700.HK], period6mo, repairTrue)拉两张表Repaired?全 False 即链路干净有 True 的行就是 repair 替你救回来的。【免费下载链接】yfinanceDownload market data from Yahoo! Finances API项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考