盤中、分K與逐筆明細
所屬章節:Data 表格查詢 全部以 2026-08-21 盤中 12:40 實際執行結果為準(台股交易時段 09:00–13:30) 23 張表都實跑過,形狀與欄位是真實輸出
先選對工具
api.MSMP 只到前一交易日。要當下的資料有三條路,用途不同:
| 要什麼 | 用 | 特性 |
|---|---|---|
| 盤中的歷史過程(分K、逐筆、分價量) | api.Data.get(...) 本頁這 23 張 |
一次性、拿整段 |
非交易時段呼叫這些表拿到的是最後一個交易日的資料,不會報錯。
用途界線:哪些能回測、哪些只能看今天
這 23 張表分兩類,用途完全不同。
| 「盤中即時」類 | 「歷史分K」類 | |
|---|---|---|
| 有哪些 | 取得即時分K*、取得今日即時成交明細*、取得零股成交明細、分價量(current)、批次取得*、漲跌家數(盤中) 等大盤概況、即時周轉率排行 |
取得歷史1分K(指定起訖日)、取得歷史1分K(指定日期前5天)、取得歷史3/5分K(指定當日)、取得歷史分K(指定日期前) |
| 涵蓋範圍 | 只有當天 | 約 4 年(實測 2022-08-22 起、968 個交易日) |
| 適合 | 最新一日的篩選與觀察 | 回測、盤中行為研究 |
| 不適合 | 回測——只有一天,沒有樣本 | — |
實測 取得歷史1分K(指定起訖日) 的回溯能力(2330):
20260801~20260820 3,721 列 14 個交易日
20260501~20260820 20,284 列 77 個交易日
20250801~20260820 67,629 列 255 個交易日
20220801~20260820 257,192 列 968 個交易日 ← 實際從 2022-08-22 開始
跟日頻一樣是約 1000 個交易日的窗。api.bt.Tools.get_stock_ohlc() 底層讀的就是這張表
(抓 1 分 K 再聚合成你要的 freq),所以要做分K回測直接用它,見
backtest-data.md。
盤中即時類拿來當「最新一日的篩選條件」是對的用法—— 例如「現在漲幅前 20 且內盤外盤比失衡的」「盤中預估量爆的」。 但它只有今天這一份,不能拿去回測,也沒辦法驗證這個條件過去有沒有效。 要驗證就得換成歷史分K 或日頻資料。
一、盤中大盤概況(5 張,都不用參數)
| 表名 | 形狀 | 欄位 |
|---|---|---|
漲跌家數(盤中) |
(12, 2) | 分級、家數 |
漲跌列表(盤中) |
(12, 2) | 分級、股票列表(該級距的代號 list) |
漲跌家數分鐘歷史(盤中) |
(220, 13) | hhmm + 12 個級距欄 |
粗產業多(盤中) |
(47, 8) | 市場別、名稱、漲跌、漲跌幅、淨比、淨流、總市值、市值漲跌幅 |
粗產業空(盤中) |
(60, 8) | 同上 |
12 個級距固定是:-8% -6% -4% -2% -1% -0% +0% +1% +2% +4% +6% +8%。
input
output(12:40 實測)
-0% / +0% 是「跌但不到 1%」與「漲但不到 1%」,不是平盤。
漲跌列表(盤中) 是同一份分級但給代號清單:
漲跌家數分鐘歷史(盤中) 把上面那張表逐分鐘記錄下來(220 列 = 開盤到現在的分鐘數),
可以看出資金是往上還往下跑。
產業資金流
市場別 名稱 漲跌 漲跌幅 淨比 淨流 總市值 市值漲跌幅
TSE 航運 6.1900 6.4200 20.91% 72.10億 2041211534150 3.6100
TSE IC-製造 9.7800 0.4200 12.18% 41.71億 64036106221650 0.8300
淨比/淨流是字串(帶%與「億」),不是數值——要運算得自己剝掉單位。粗產業多47 列、粗產業空60 列,兩張分開(不是同一張的正負兩半)。
二、個股分K(8 張)
參數規則不一致,這是最容易錯的地方:
| 表名 | 參數 | 形狀(2330) |
|---|---|---|
取得即時分K(最後交易日) |
symbol, minutes |
(45, 11) |
取得即時分K-含興櫃 |
symbol |
(220, 10) |
取得歷史分K(指定日期前) |
symbol, yyyyMMdd, minutes |
(18, 11) |
取得歷史3分K(指定當日) |
symbol, yyyyMMdd |
(90, 9) |
取得歷史5分K(指定當日) |
symbol, yyyyMMdd |
(54, 9) |
取得歷史1分K(指定起訖日) |
symbol, startDate, endDate |
(798, 8) |
取得歷史1分K(指定日期前5天) |
symbol, yyyyMMdd |
(1330, 8) |
取得歷史分K(含加權/櫃買指數) |
symbol, minutes |
(999, 11) |
minutes 可選 1 / 3 / 5 / 15 / 30 / 60。漏傳會拋 ValueError 並印出正確用法:
欄位
三種欄位組合:
最精簡(8 欄) 日期 hhmm 開盤價 最高價 最低價 收盤價 成交量 datetime
帶均線(9 欄) 上面 + MA3 或 MA5(固定當日均線,跟表名的分鐘數對應)
帶累計(11 欄) 上面 + 日成交金額(千) 日成交量 日平均價
日成交金額(千)/日成交量/日平均價是「當日累計到這一根為止」, 不是這根的量。這根的量在成交量。
input
output(12:41 實測)
日期 hhmm 開盤價 最高價 最低價 收盤價 成交量 日成交金額(千) 日成交量 日平均價 datetime
43 2026-08-21 1240 2400 2400 2395 2400 77 22503500 9430 2386.3700 2026-08-21 12:40:00
44 2026-08-21 1245 2400 2400 2395 2400 17 22544265 9447 2386.3900 2026-08-21 12:45:00
K 棒用結束時間標記,最後一根是還在形成中的。 實測:間隔 25 秒取兩次,
最後一根(1245,涵蓋 12:40–12:45)的量從 69 漲到 78,
倒數第二根維持 77 不動——最後一根還在累加。
它的 收盤價 就是當下最新價。做訊號時要丟掉最後一根,否則會用到未完成的 bar。
時間欄有兩套
分K表同時給 日期 + hhmm(4 位字串)和組合好的 datetime。
直接用 datetime 就好,不用自己拼:
df = api.Data.get('取得歷史1分K(指定起訖日)', '2330', '20260818', '20260820')
df = df.set_index('datetime') # 已經是 datetime64
只有
取得即時分K-含興櫃這張沒有datetime欄(10 欄版),要自己組。
三、逐筆明細與五檔(5 張)
| 表名 | 參數 | 形狀 | 說明 |
|---|---|---|---|
取得今日即時成交明細(含五檔報價) |
symbol |
(2906, 28) | 當日逐筆,每筆都帶當下五檔 |
取得今日即時成交明細(貼標大戶/散戶) |
symbol |
(2906, 29) | 同上多一欄 類型 |
取得最新一筆成交明細(含五檔報價) |
symbol |
(1, 28) | 只要最新一筆時用這張,省流量 |
取得零股成交明細 |
symbol |
(2494, 8) | 量的單位是股 |
取得個股盤中內外盤-含興櫃 |
symbol |
(1, 4) | 內外盤累計量 |
28 欄的結構
成交價 成交量 總成交量 開盤價 datetime 最佳買價 最佳賣價 成交序號
買_1價 買_1量 … 買_5價 買_5量 ← 注意順序:檔案裡是 買_5 到 買_1
賣_1價 賣_1量 … 賣_5價 賣_5量
買_1 是最佳買價(最高的買價),賣_1 是最佳賣價。實測驗證:
最佳買價 2395.0 == 買_1價 2395.0
最佳賣價 2400.0 == 賣_1價 2400.0
買檔價格由高到低: [2395, 2390, 2385, 2380, 2375]
賣檔價格由低到高: [2400, 2405, 2410, 2415, 2420]
所以 最佳買價 / 最佳賣價 兩欄是 買_1價 / 賣_1價 的別名,取哪個都一樣。
input
d = api.Data.get('取得最新一筆成交明細(含五檔報價)', '2330')
d[['成交價', '成交量', '總成交量', 'datetime', '買_1價', '買_1量', '賣_1價', '賣_1量']]
output(12:41 實測)
datetime 有毫秒。成交量 是這一筆(1 張),總成交量 是當日累計(9454 張)。
內外盤的欄名是簡體「内」
欄名是
内盤不是內盤(簡體「内」)。用df['內盤']會KeyError。 批次版批次取得個股盤中內外盤-含興櫃與權證也一樣。
四、分價量(2 張)
| 表名 | 參數 | 形狀 |
|---|---|---|
分價量 |
symbol |
(715, 5) |
取得指定日期前幾天的分價量歷史資料 |
symbol, endDate, days |
(21, 4) |
分價量 一次給五種累計區間,用 類型 欄區分:
呼叫時會印一行說明:
d = api.Data.get('分價量', '2330')
today = d[d['類型'] == 'current'] # 只要當日
last20 = d[d['類型'] == 'pre19Sum'] # 前 19 日(不含今日)
output(當日部分)
股票代號 日期 類型 價格 成交量
2330 2026-08-21 current 2400 1037
2330 2026-08-21 current 2395 2652
2330 2026-08-21 current 2390 1357
五、批次盤中(4 張,傳 List[symbol])
| 表名 | 形狀(2 檔) | 欄位重點 |
|---|---|---|
批次取得個股盤中行情 |
(2, 11) | 開盤價/最高價/最低價/收盤價/平盤價/成交量/日平均價/成交金額(千) |
批次取得個股盤中行情-含興櫃(tick含試搓) |
(2, 16) | 多了 漲停價/跌停價/datetime/成交價/總量/買1價量/賣1價量 |
批次取得個股盤中內外盤-含興櫃與權證 |
(2, 3) | 内盤/外盤 |
批次取得盤中預估量 |
(2, 3) | datetime、成交量(收盤預估量) |
output(12:41 實測)
股票代號 交易所 平盤價 漲停價 跌停價 datetime 開盤價 最高價 最低價 成交價 成交量 總量 買1量 買1價 賣1價 賣1量
2330 TWSE 2375 2610 2140 2026-08-21 12:41:46 2375 2400 2365 2395 1 9465 107 2395 2400 1077
2317 TWSE 246.5 271 222 2026-08-21 12:41:48 245 247 243 245.5 1 16642 167 245 245.5 446
含興櫃那張的五檔只有第一檔(
買1價/賣1價),要完整五檔用逐筆明細那張。 欄名也不同:這裡是買1量沒有底線,逐筆明細是買_1量有底線。
批次取得盤中預估量 給的是收盤預估量,不是當下累計量:
12:41 時 2330 當下累計 9465 張,預估收盤 12054 張。
六、其他即時
| 表名 | 參數 | 形狀 | 說明 |
|---|---|---|---|
即時周轉率排行 |
無 | (200, 2) | 股票代號、周轉率%,只給前 200 名 |
收盤20日周轉率 |
無 | (2728, 5) | 全市場 |
個股上個交易日成交均張(成交量/成交筆數) |
symbol |
(1, 2) | 判斷散戶/法人參與度 |
注意
- 最後一根 K 棒還在形成中,做訊號要丟掉它。K 棒用結束時間標記。
日成交金額(千)/日成交量是當日累計,不是那一根的量。- 內外盤的欄名是簡體
内盤,df['內盤']會KeyError。 - 五檔欄名兩套:逐筆明細是
買_1量(有底線),批次含興櫃是買1量(沒底線)。 - 零股的量單位是股,整股是張。
淨比/淨流是字串(帶%與「億」),要運算得先剝單位。- 分K 的
minutes只接受1/3/5/15/30/60,漏傳會ValueError並印出正確用法。 - 盤中即時類只有今天,適合做最新一日的篩選,不能回測。要回測用
取得歷史1分K(指定起訖日)(4 年)或日頻資料。 - 非交易時段呼叫這些表拿到最後一個交易日的資料,不會報錯——
要確認是不是今天的,看回傳的
日期或datetime欄。
相關頁
- Data.get 取得表格資料:80 張表按用途分組
- USData.get_snapshots 美股即時快照:美股一次性報價(台股無此方法)
- 資料頻率與歷史長度:日頻 1000 筆上限、期貨在哪