教學
盤後逐筆與分鐘資料
本頁內容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_type | 1 外盤、2 內盤、0 未判定;不代表法人或主力身分 |
bid_price, ask_price, bid_volume, ask_volume | 來源有提供才有值;舊檔缺少時為 null |
session | regular 或 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 與其他資料函式的完整參數。
- 技術指標 用日頻資料一行算出所有股票的技術指標。
這一頁有幫到你嗎?