歷史價量
Ticker.history() 回傳 pandas DataFrame:開、高、低、收、成交量,以及股利與分割(若有)。這是 yfinance 最常用的函式。
本頁說明時間範圍、K 線頻率,以及預設的價格調整行為。搞錯這三件事,後面畫圖與回測都會偏。
基本用法
欄位通常包含 Open、High、Low、Close、Volume。actions=True(history() 預設)時還會有 Dividends、Stock Splits。
時間範圍:period 或 start / end
兩種指定方式擇一為主,不要混用到自己搞不清楚區間:
| 參數 | 用途 |
|---|---|
period |
相對現在的長度:1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max |
start / end |
絕對日期,格式 YYYY-MM-DD |
# 近五年
df = tsmc.history(period="5y")
# 指定起訖;end 是「不含當天」
df = tsmc.history(start="2024-01-01", end="2025-01-01")
未給 start / end 時,period 預設約一個月。end 為不含當日,例如 end="2023-01-01" 最後一筆是 2022-12-31。
K 線頻率:interval
| interval | 意義 | 限制 |
|---|---|---|
1m、2m、5m、15m、30m、60m、90m、1h |
盤中 | 不能超過最近約 60 天;越細檔能抓的天數越短 |
1d、5d、1wk、1mo、3mo |
日線以上 | 歷史較長 |
intraday = tsmc.history(period="5d", interval="1h")
weekly = tsmc.history(period="2y", interval="1wk")
盤前盤後美股可設 prepost=True。30m 官方註記是先抓 15 分再重採樣,以避開 Yahoo 的 API 問題。
auto_adjust:現在預設已還原
auto_adjust 預設為 True:開高低收會依股利與分割調整,DataFrame 不會再單獨給 Adj Close。
若你要未調整的原始 OHLC,再加上調整後收盤價:
舊教材若還在教「一定有 Adj Close 欄」,多半是舊版預設。以你安裝的版本為準。
其他實用參數
repair=True:嘗試修 Yahoo 資料裡明顯錯誤(例如價格差 100 倍)。keepna=True:保留 Yahoo 回傳的空列。raise_errors=True:失敗時丟例外,而不是只寫 log。
完整參數見 PriceHistory.history。多檔請改用 yf.download()。
推薦影音
Vincent Codes Finance 示範 download() 與 Ticker.history(),並說明 auto_adjust 預設改為 True、盤中 1 分 K 的天數限制。可與本頁對照。
抓到價量之後,可用 matplotlib、mplfinance 或 Plotly 畫 K 線。示範影片收在 影音教學。