獲取雅虎財(cái)經(jīng)完整數(shù)據(jù)的快速上手教程)
yfinance終極指南5分鐘免費(fèi)獲取雅虎財(cái)經(jīng)完整數(shù)據(jù)的快速上手教程【免費(fèi)下載鏈接】yfinanceDownload market data from Yahoo! Finances API項(xiàng)目地址: https://gitcode.com/GitHub_Trending/yf/yfinance你是不是也想拉一份股票歷史數(shù)據(jù)做分析結(jié)果要么被商業(yè) API 的年費(fèi)勸退要么得注冊(cè)一堆平臺(tái)、填半天申請(qǐng)表單是不是照著網(wǎng)上的零散教程折騰一下午最后連一份干凈的行情都跑不出來如果你的答案是是那 yfinance 就是為你準(zhǔn)備的答案——這個(gè)開源 Python 庫(kù)只需幾行代碼就能免費(fèi)拿到雅虎財(cái)經(jīng)的股票價(jià)格、財(cái)務(wù)報(bào)表、期權(quán)鏈等幾乎全部公開數(shù)據(jù)裝上即用零配置、零密鑰。一句話定位yfinance 本質(zhì)上是雅虎財(cái)經(jīng)數(shù)據(jù)的翻譯官把網(wǎng)頁(yè)背后那些沒人看得懂的公開接口翻譯成你順手就能用的 Pandas 表格。它不是什么神秘的量化引擎也不是需要付費(fèi)訂閱的金融服務(wù)——它就是一個(gè)免費(fèi)、開源、安裝即用的數(shù)據(jù)下載器。為什么偏偏是它傳統(tǒng)方案 vs yfinance對(duì)比維度傳統(tǒng)方案自寫爬蟲 / 商業(yè) APIyfinance上手成本注冊(cè)、申請(qǐng)密鑰、啃接口文檔pip install一條命令數(shù)據(jù)完整度只拿得到自己費(fèi)力爬的那一塊價(jià)格/財(cái)報(bào)/分紅/期權(quán)全覆蓋數(shù)據(jù)格式五花八門清洗就得大半天標(biāo)準(zhǔn)化 Pandas DataFrame數(shù)據(jù)修復(fù)拆股、除息錯(cuò)位全靠手寫邏輯內(nèi)置repair智能修復(fù)實(shí)時(shí)數(shù)據(jù)往往要額外付費(fèi)開通內(nèi)置 WebSocket 實(shí)時(shí)訂閱yfinance 打破了金融數(shù)據(jù)的獲取壁壘它把數(shù)據(jù)是力量這件事免費(fèi)交到了每個(gè)人手里。上面這張圖展示的是 yfinance 的招牌能力當(dāng)某幾天的價(jià)格連續(xù)出現(xiàn) 0.15 這種明顯異常值時(shí)紅色框內(nèi)開啟數(shù)據(jù)修復(fù)后它會(huì)自動(dòng)識(shí)別異常區(qū)間并還原為合理價(jià)格讓你拿到的每一份數(shù)據(jù)都干凈可用。新手第一步如何用 yfinance 下載股票歷史數(shù)據(jù)安裝就是一行命令裝完立刻能跑pip install yfinance這段代碼在做什么創(chuàng)建一只股票的句柄然后抓取它最近一個(gè)月的日線行情。import yfinance as yf aapl yf.Ticker(AAPL) # 拿到蘋果股票的句柄 hist aapl.history(period1mo) # 拉取最近一個(gè)月的日線數(shù)據(jù) print(hist.head()) # 看一眼數(shù)據(jù)長(zhǎng)什么樣運(yùn)行預(yù)期你會(huì)得到一張帶 Open / High / Low / Close / Volume 的標(biāo)準(zhǔn)表格每一行是一個(gè)交易日直接就能丟進(jìn) pandas 做分析。? 第一份數(shù)據(jù)到手全程不超過 30 秒。進(jìn)階實(shí)戰(zhàn)如何批量獲取多只股票數(shù)據(jù)單只股票夠用了但做投資組合分析時(shí)你可能想一次拉幾十只。別用循環(huán)一只只請(qǐng)求——那樣又慢又容易被限流yfinance 提供了一鍵批量下載import yfinance as yf # group_byticker 讓多只股票的數(shù)據(jù)按股票名分塊組織 data yf.download([AAPL, MSFT, GOOGL], period6mo, group_byticker) print(data.columns) # 順手看看基本面 aapl yf.Ticker(AAPL) info aapl.get_info() # 公司概況、估值指標(biāo)都在里面 print(info[longName], info.get(trailingPE))運(yùn)行預(yù)期data是一個(gè)多層列結(jié)構(gòu)的 DataFrame可以直接用data[AAPL][Close]取出某只股票的收盤價(jià)get_info()返回一個(gè)字典市盈率、市值、股息率等關(guān)鍵指標(biāo)隨手可取。財(cái)務(wù)三表也一樣簡(jiǎn)單aapl.get_financials()、aapl.get_balance_sheet()、aapl.get_cashflow()全都是規(guī)整的 DataFrame。高手玩法數(shù)據(jù)修復(fù)與期權(quán)鏈分析到了高手階段你該學(xué)會(huì)跟臟數(shù)據(jù)打交道了。金融數(shù)據(jù)里最常見的問題是公司除息或拆股后歷史價(jià)格沒被正確調(diào)整導(dǎo)致數(shù)據(jù)斷層。yfinance 的repairTrue參數(shù)就是為了解決這個(gè)痛點(diǎn)而生的import yfinance as yf # 開啟 repair讓 yfinance 自動(dòng)修復(fù)異常價(jià)格、除息與拆股錯(cuò)位 hist yf.download(AAPL, period1y, repairTrue) # 期權(quán)鏈也一樣簡(jiǎn)單 aapl yf.Ticker(AAPL) dates aapl.options # 所有可交易的到期日 chain aapl.option_chain(dates[0]) # 第一個(gè)到期日的完整期權(quán)鏈 print(chain.calls.head()) # 看認(rèn)購(gòu)期權(quán)行權(quán)價(jià)、買價(jià)賣價(jià)、隱含波動(dòng)率上圖演示了拆股場(chǎng)景公司公告 1:10 拆股后yfinance 會(huì)自動(dòng)把拆股前的歷史價(jià)格按比例調(diào)整保證整條曲線連續(xù)可比不會(huì)出現(xiàn)斷崖式跳空。而上面這張則展示了除息調(diào)整發(fā)放股息當(dāng)天repair機(jī)制會(huì)正確處理價(jià)格回落的假象避免你誤以為股價(jià)真的跌了。記住一句話數(shù)據(jù)到手先開 repair。?? 高頻踩坑點(diǎn)清單坑 1批量下載時(shí)拿了空數(shù)據(jù)現(xiàn)象data里全是 NaN。根因查詢時(shí)間在盤中休市或開盤前后該時(shí)段本就沒有交易。解決data yf.download(AAPL, period1d, interval1m, prepostTrue) # 包含盤前盤后坑 2repairTrue搭配周線/月線直接報(bào)錯(cuò)現(xiàn)象報(bào)錯(cuò)Yahoos interval 5d is nonsense。根因價(jià)格修復(fù)機(jī)制暫不支持周線及以上粒度。解決需要修復(fù)時(shí)用日線或更小粒度周線數(shù)據(jù)自行校驗(yàn)???3時(shí)區(qū)錯(cuò)亂日期對(duì)不上現(xiàn)象拿到的日期和當(dāng)?shù)亟灰讜r(shí)間差出好幾個(gè)小時(shí)。根因數(shù)據(jù)默認(rèn)按交易所時(shí)區(qū)返回。解決打印hist.index.tz確認(rèn)時(shí)區(qū)需要時(shí)用hist.index hist.index.tz_convert(Asia/Shanghai)轉(zhuǎn)成你熟悉的時(shí)區(qū)。 中國(guó)市場(chǎng)代碼記得帶后綴比如騰訊是0700.HK、茅臺(tái)是600519.SS。小項(xiàng)目演示用 yfinance 自動(dòng)生成投資組合周報(bào)把前面所有知識(shí)點(diǎn)串起來做一個(gè)小工具讀取你的持倉(cāng)自動(dòng)拉數(shù)據(jù)、算漲跌、輸出周報(bào)。import yfinance as yf portfolio {AAPL: 10, MSFT: 5, GOOGL: 3} # 你的持倉(cāng) data yf.download(list(portfolio), period1mo, repairTrue, group_byticker) # 批量修復(fù) for t in portfolio: closes data[t][Close].dropna() # 取該股票的收盤序列 change (closes.iloc[-1] / closes.iloc[0] - 1) * 100 print(f{t}: 近一月漲跌 {change:.2f}%)運(yùn)行預(yù)期終端依次打印每只股票近一個(gè)月的漲跌幅。把這 15 行代碼掛到定時(shí)任務(wù)里你就擁有了一臺(tái)自動(dòng)生成持倉(cāng)報(bào)告的小機(jī)器人。 想深入研究的讀者推薦精讀這幾個(gè)文件yfinance/ticker.py單只股票封裝、yfinance/multi.py批量下載邏輯、yfinance/scrapers/history.py價(jià)格修復(fù)核心。常見問題速查Q1yfinance 真的完全免費(fèi)嗎是的無需注冊(cè)、無需 API 密鑰數(shù)據(jù)來自雅虎財(cái)經(jīng)的公開接口。不過它僅供個(gè)人學(xué)習(xí)與研究使用請(qǐng)遵守雅虎財(cái)經(jīng)的使用條款不要用于商業(yè)抓取。Q2數(shù)據(jù)更新頻率如何歷史數(shù)據(jù)通常 T1 更新實(shí)時(shí)行情走 WebSocket 訂閱基本實(shí)時(shí)推送適合做盤中監(jiān)控。Q3支持哪些市場(chǎng)全球主要市場(chǎng)都支持美股直接寫代碼AAPL、港股帶.HK0700.HK、A 股帶.SS/.SZ600519.SS、000001.SZ、歐股帶交易所后綴。Q4repairTrue會(huì)篡改真實(shí)數(shù)據(jù)嗎不會(huì)。它只修正明顯違背價(jià)格規(guī)律的異常區(qū)間不動(dòng)的數(shù)據(jù)保持原樣你也可以先用repairFalse拉原始數(shù)據(jù)對(duì)比觀察。結(jié)語3 個(gè)值得記住的點(diǎn)yfinance 免費(fèi) 零配置幾行代碼就能拿到雅虎財(cái)經(jīng)的全量公開數(shù)據(jù)是新手學(xué)數(shù)據(jù)分析最好的起點(diǎn)。能力階梯很清晰新手用history()拿行情進(jìn)階用get_info()看基本面高手用repair修數(shù)據(jù)、用option_chain玩期權(quán)。數(shù)據(jù)到手先開repair再注意時(shí)區(qū)和盤中時(shí)段你的數(shù)據(jù)質(zhì)量就已經(jīng)超過 90% 的爬蟲黨。最好的學(xué)習(xí)方式永遠(yuǎn)是動(dòng)手?,F(xiàn)在打開你的終端輸入pip install yfinance把你最關(guān)心那只股票的數(shù)據(jù)抓下來看看吧——屬于你的金融數(shù)據(jù)分析之旅從這一行命令開始?!久赓M(fèi)下載鏈接】yfinanceDownload market data from Yahoo! Finances API項(xiàng)目地址: https://gitcode.com/GitHub_Trending/yf/yfinance創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考