文件
開啟 Studio

教學

盤後逐筆與分鐘資料

本頁內容7

FinLab 2.0.20 起,可以用 data.get() 下載已發布的台股逐筆成交(tick)、一般交易時段分鐘線,以及期貨各月份的 1 分 K。資料在盤後收集,只有通過檢查的股票日期才開放下載,歷史覆蓋仍在補齊。

這些資料只有台股與台灣期貨。美股沒有盤中資料,美股資料是日頻(us_price:*)或季頻(us_income_statement:*、us_balance_sheet:*、us_cash_flow:*)。

下載一檔股票一天的逐筆與分鐘線

from finlab import data

# 登入 FinLab 後即可下載;使用者不需要 Shioaji 帳號。
ticks = data.get("tw_tick:2330", start="2026-06-01", end="2026-06-01")
minutes = data.get("tw_minute:2330", start="2026-06-01", end="2026-06-01")
  • 誰能下載:台股資料會員可查詢已發布的股票日期。免費會員可下載 2330/2026-06-01 的固定樣本。
  • 配額:下載計入原有的每日資料配額;快取命中不重複扣量。
  • 價格:資料是未還原價格。

指定日期與股票

  • start 與 end 都必填,以台北的交易日期為準,包含頭尾,每次最多 31 個日曆日。
  • 股票代號保留字串,例如 tw_tick:0050。

它們和日頻資料的用法有幾處不同:

  • 兩種資料都回傳長表 pandas.DataFrame,不是日期 × 股票的寬表。
  • 不套用日頻矩陣的股票 universe、欄位對齊或日期截斷設定。
  • 目前不支援 data.gets()、lazy=True、進度回呼或 local-only 模式。

逐筆成交的欄位

欄位意義
stock_id, trade_date股票代號與交易日期
timestamp具 Asia/Taipei 時區的奈秒時間
sequence股票日檔的來源列序;不是交易所成交編號
ts原來源的整數奈秒時間,保留原值
close, volume成交價與來源原始成交量
tick_type1 外盤、2 內盤、0 未判定;不代表法人或主力身分
bid_price, ask_price, bid_volume, ask_volume來源有提供才有值;舊檔缺少時為 null
sessionregular 或 after_hours_fixed;未識別時段不會通過發布檢查

使用時要注意兩件事:

  • 成交量不是股數:volume 保留 Shioaji 的原始數值,單位標在 attrs['volume_unit'],值為 provider_native,不要直接當成股數。
  • 不要只依時間去重:相同時間戳可以有多筆合法成交,請保留 sequence。

分鐘線的欄位

分鐘線包含 stock_id、trade_date、timestamp、session、open、high、low、close、volume、tick_count、vwap。

  • 時間標籤在區間左端。
  • 13:30 收盤撮合獨立成一列。
  • 沒有成交的分鐘不補齊,也不延用前一筆價格。
  • 14:30 盤後定價只保留在 tick,沒有混入一般分鐘線。

期貨各月份 1 分 K

tw_futures_minute:<商品代碼>_<到期月份> 收錄期交所逐筆檔中的期貨,包含股期與各月份,不自動接成近月連續契約。週契約保留 W1~W5 後綴。

from finlab import data

minutes = data.get("tw_futures_minute:TX_202610", start="2026-10-02", end="2026-10-02")
stock_future = data.get(
    "tw_futures_minute:CDF_202610", start="2026-10-02", end="2026-10-02"
)
  • 時段:日夜盤都收,session 為 regular 或 after_hours;stock_id 是商品與月份的組合。
  • 日期:start、end 指交易日;timestamp 保留實際成交時間,所以週五夜盤可能出現在下週一交易日的資料裡。
  • 成交量:單位為口,只計單式成交,不含跨月價差與鉅額交易;這個範圍記在 attrs['volume_scope'] = 'outright_only'。
  • 精度:來源精度為秒,同一秒內依來源列序取開盤與收盤,無法還原更細的成交先後;tick_count 計算單式成交列。
  • 更新與覆蓋:盤後更新,先回補官方可下載的近 30 個交易日,再持續累積;實際起日以已發布資料為準。
  • 權限:台股資料會員可下載,沒有期貨免費樣本;沿用股票資料的日期上限、缺資料錯誤與快取規則。

缺資料、休市與更正

  • 請求範圍裡若有交易日還沒收齊,會拋出 DataError 並列出缺少的日期,不會默默略過。
  • 超出已確認日曆範圍的請求也會報錯。
  • 已下載的分區依實體檔案、generation 與 checksum 快取;每次查詢仍會確認最新的發布清單,自動取得新發布或更正的分區。正常化、更正或重跑都不會混用兩個版本。

回傳的 DataFrame 用 attrs 記錄這些資訊:

attrs 鍵內容
no_trade_dates日資料確認無成交的日期
closed_dates已確認的休市日期
volume_unit逐筆成交量的單位,值為 provider_native
volume_scope期貨成交量的範圍,值為 outright_only
after_hours_validation盤後定價的檢查結果
發布前做了哪些檢查
  • 股票一般交易時段的 tick,總量及 OHLC 必須與 Shioaji Kbars 對得上才發布;參考分鐘線中的零量補值列不參與價格核對。這能檢查來源之間的一致性,不等於交易所逐筆成交的獨立認證。
  • 盤後定價目前只有 schema 檢查,結果可由 attrs['after_hours_validation'] 確認。
  • 期貨每個契約、時段的成交量,要與官方日行情扣除價差腿後的數量核對才發布。

下一步

  • 下載資料 data.get 的基本用法,以及每天更新時怎麼分開處理需要日期的資料。
  • finlab.data API data.get 與其他資料函式的完整參數。
  • 技術指標 用日頻資料一行算出所有股票的技術指標。
↑↓ 選擇 Enter 開啟 Esc 關閉