Skip to content

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

多檔下載

一次下載多檔用 yf.download(),不要對每檔各呼叫一次 history()。函式內部可用多執行緒,比較不容易把自己打到限流。

本頁說明參數、回傳的 MultiIndex,以及何時改用 Tickers

yf.download()

import yfinance as yf

data = yf.download(
    ["2330.TW", "AAPL", "MSFT"],
    period="1y",
    interval="1d",
    auto_adjust=True,
    progress=False,
)

也可用 start / end 取代 periodend 同樣不含當天。

常用參數:

參數 預設 說明
tickers (必填) 字串或 list
period / start / end 約一個月 history() 相同
interval 1d K 線頻率;盤中同樣受 60 天限制
auto_adjust True 是否自動調整 OHLC
group_by column columnticker,決定欄位階層
actions False 是否一併下載股利與分割
threads True 多執行緒
multi_level_index True 是否固定回傳多層欄位
ignore_tz 依 interval 日線以上常去掉時區,方便對齊不同市場

完整清單見 yfinance.download

讀 MultiIndex

預設 group_by="column" 時,欄位第一層是 Open / Close 等,第二層是代號。取收盤價:

close = data["Close"]          # 各檔收盤,欄名為代號
aapl_close = data["Close"]["AAPL"]

group_by="ticker",則先選代號再選欄位:

data = yf.download(
    ["AAPL", "MSFT"],
    period="6mo",
    group_by="ticker",
    auto_adjust=True,
    progress=False,
)
aapl = data["AAPL"]

單檔下載有時仍是 MultiIndex;若只要扁平欄位,可設 multi_level_index=False(行為依版本,下載後用 data.head() 確認最穩)。

Tickers:多檔但仍要屬性

download() 只負責價量(可加 actions)。若還要每檔的 info、財報,用 Tickers

tickers = yf.Tickers("MSFT AAPL GOOG")
tickers.tickers["MSFT"].info
tickers.tickers["AAPL"].history(period="1mo")
tickers.tickers["GOOG"].actions

Tickers 也可 live() 訂閱即時報價,見 即時報價

推薦影音

Ryan O'Connell(CFA, FRM)示範用 yf.download() 一次抓多檔 ETF 的歷史價格,並用日期區間控制範圍。適合對照本頁的多檔下載。