Skip to content

建立 2026-09-15 更新 2026-09-15

歷史價量

Ticker.history() 回傳 pandas DataFrame:開、高、低、收、成交量,以及股利與分割(若有)。這是 yfinance 最常用的函式。

本頁說明時間範圍、K 線頻率,以及預設的價格調整行為。搞錯這三件事,後面畫圖與回測都會偏。

基本用法

import yfinance as yf

tsmc = yf.Ticker("2330.TW")
df = tsmc.history(period="1y")
print(df.head())

欄位通常包含 OpenHighLowCloseVolumeactions=Truehistory() 預設)時還會有 DividendsStock Splits

時間範圍:period 或 start / end

兩種指定方式擇一為主,不要混用到自己搞不清楚區間:

參數 用途
period 相對現在的長度:1d5d1mo3mo6mo1y2y5y10yytdmax
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 意義 限制
1m2m5m15m30m60m90m1h 盤中 不能超過最近約 60 天;越細檔能抓的天數越短
1d5d1wk1mo3mo 日線以上 歷史較長
intraday = tsmc.history(period="5d", interval="1h")
weekly = tsmc.history(period="2y", interval="1wk")

盤前盤後美股可設 prepost=True30m 官方註記是先抓 15 分再重採樣,以避開 Yahoo 的 API 問題。

auto_adjust:現在預設已還原

auto_adjust 預設為 True:開高低收會依股利與分割調整,DataFrame 不會再單獨給 Adj Close

若你要未調整的原始 OHLC,再加上調整後收盤價:

raw = tsmc.history(period="1y", auto_adjust=False)
# 此時會有 Close 與 Adj Close

舊教材若還在教「一定有 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 線。示範影片收在 影音教學