台股漲跌停 ±10% 為什麼經常不是整數 — 升降單位與計算 quirk
台股漲跌停幅度為 ±10%,但實際掛出的漲停價與跌停價往往不是「基準價 × 1.1」的精確數字。這個落差不是系統誤差,而是升降單位(tick size)規則的必然結果:TWSE 規定所有委託價格必須符合最小跳動單位,漲停 / 跌停價格在 ±10% 計算後,還需依規則取整,才能成為合法委託價。本文整理台股漲跌停的計算機制、升降單位分級、例外情況,以及交易時段的完整架構。
① 漲跌幅基本規則與計算基準
TWSE 集中市場對上市股票設定每日漲跌幅限制為 ±10%。計算基準為「開盤競價基準」,在一般交易日,開盤競價基準等於前一交易日的收盤價。
計算公式如下:
漲停價(未取整)= 開盤競價基準 × 1.1
跌停價(未取整)= 開盤競價基準 × 0.9
計算結果稱為「未取整漲停 / 跌停價」,此數字不能直接作為委託價格使用,必須再依升降單位規則處理:
- 漲停價:向下取整至最近合法 tick(不可超過 ×1.1 上限)
- 跌停價:向上取整至最近合法 tick(不可突破 ×0.9 下限)
取整方向確保計算後的漲停 / 跌停價格不超過法定幅度上限,同時對稱地避免跌停落在法定幅度下限之外。
② 升降單位分級(TWSE 官方規定)
TWSE 依股票當前價格區間設定八個跳動單位級距,股價愈高,最小跳動單位愈大:
| 股價範圍 | 最小跳動單位(元) |
|---|---|
| 未滿 5 元 | 0.01 |
| 5 元至未滿 10 元 | 0.05 |
| 10 元至未滿 50 元 | 0.05 |
| 50 元至未滿 100 元 | 0.10 |
| 100 元至未滿 150 元 | 0.50 |
| 150 元至未滿 500 元 | 1.00 |
| 500 元至未滿 1,000 元 | 5.00 |
| 1,000 元以上 | 5.00 |
同一支股票在不同股價區間的跳動單位不同。例如股票從 48 元漲到 52 元後,委託價格的最小跳動單位就從 0.05 元切換至 0.10 元。這個切換是依委託當下的股價即時判斷,不是依「前一日收盤價」。
幾個實務注意事項:
- 若股票前一日收盤 48 元,隔日漲停後落在 52.8 元(跨越 50 元門檻),程式計算漲停時應以漲停後的價格(約 52.x 元)對應的 tick(0.10 元)來取整,而非以開盤基準 48 元的 tick(0.05 元)取整。
- 5 元至未滿 10 元與 10 元至未滿 50 元兩個區間的 tick 相同(均為 0.05 元),跨越 10 元門檻不影響 tick 大小,僅 50 元與 100 元門檻才有實質 tick 切換。
- 1,000 元以上與 500 元至未滿 1,000 元的 tick 相同(均為 5.00 元),跨越 1,000 元門檻同樣不影響 tick 大小。
這些細節在手動驗算或程式自動計算時均需注意,尤其是股價接近 50 元或 100 元等主要門檻的個股。
③ 計算範例:合法漲停 / 跌停取整實況
以一個 hypothetical 股價 73.20 元為例(屬 50 元至未滿 100 元區間,tick = 0.10 元):
漲停(未取整)= 73.20 × 1.1 = 80.52
→ 向下取整至 0.10 的倍數 → 合法漲停 = 80.50 元
跌停(未取整)= 73.20 × 0.9 = 65.88
→ 向上取整至 0.10 的倍數 → 合法跌停 = 65.90 元
實際漲幅驗算:(80.50 - 73.20) / 73.20 ≈ 9.97%,而非整數 10%。 實際跌幅驗算:(73.20 - 65.90) / 73.20 ≈ 9.97%,同樣非整數 10%。
再以另一個 hypothetical 股價 120 元為例(屬 100 元至未滿 150 元區間,tick = 0.50 元):
漲停(未取整)= 120 × 1.1 = 132.00
→ 132.00 本身已是 0.50 的倍數 → 合法漲停 = 132.00 元
跌停(未取整)= 120 × 0.9 = 108.00
→ 108.00 本身已是 0.50 的倍數 → 合法跌停 = 108.00 元
此例恰好整除,漲跌幅精確為 10%。但這屬於特例,不是通則。大多數股價計算後的 ×1.1 / ×0.9 結果不能整除對應 tick,故取整後的實際漲跌幅通常略低於 10%。
再以一個跨越 tick 區間臨界點的 hypothetical 股價 9.90 元為例(屬 5 元至未滿 10 元區間,tick = 0.05 元):
漲停(未取整)= 9.90 × 1.1 = 10.89
→ 但漲停後股價落在 10 元以上,進入下一個 tick 區間(10-50 元,tick = 0.05 元)
→ 10.89 向下取整至 0.05 的倍數 → 合法漲停 = 10.85 元
跌停(未取整)= 9.90 × 0.9 = 8.91
→ 跌停後股價仍在 5-10 元區間(tick = 0.05 元)
→ 8.91 向上取整至 0.05 的倍數 → 合法跌停 = 8.95 元
這個案例說明漲停後的股價可能落在與當前股價不同的 tick 區間,取整時應使用漲停後的股價所對應的 tick,而非計算基準的 tick 區間。這是程式自動計算時容易遺漏的邊界情況。
程式取整範例(以 JavaScript 為例):
// 漲停價計算(向下取整至合法 tick)
function calcLimitUp(basePrice) {
const rawLimitUp = basePrice * 1.1;
const tick = getTickSize(rawLimitUp); // 依漲停後的價格決定 tick
return Math.floor(rawLimitUp / tick) * tick;
}
// 跌停價計算(向上取整至合法 tick)
function calcLimitDown(basePrice) {
const rawLimitDown = basePrice * 0.9;
const tick = getTickSize(rawLimitDown); // 依跌停後的價格決定 tick
return Math.ceil(rawLimitDown / tick) * tick;
}
// 升降單位對應(依 TWSE 官方規定)
function getTickSize(price) {
if (price < 5) return 0.01;
if (price < 10) return 0.05;
if (price < 50) return 0.05;
if (price < 100) return 0.10;
if (price < 150) return 0.50;
if (price < 500) return 1.00;
if (price < 1000) return 5.00;
return 5.00;
}
浮點數精度問題在此類計算中需特別處理:直接用 JavaScript 原生浮點數運算時,73.20 * 1.1 可能回傳 80.52000000000001,Math.floor 前建議先做精度對齊(例如 Math.round(rawLimitUp * 100) / 100)再取整,避免因浮點誤差導致結果偏移一個 tick。
④ 不受漲跌停限制的例外情況
並非所有在 TWSE 交易的有價證券都受 ±10% 約束,以下為主要例外:
無漲跌幅限制:
- 新上市股票前 5 個交易日:IPO 首日起算 5 個交易日內,無漲跌幅限制,股價可由市場完全自由定價。第 6 個交易日起恢復 ±10% 限制。
- 政府公債:依固定收益商品特性,無漲跌幅限制。
- 部分 ETF 及外國有價證券:個別商品依其掛牌條件決定,並非所有 ETF 都無漲跌幅限制;多數股票型 ETF 與個股相同,適用 ±10%。
認購(售)權證:
認購(售)權證的漲跌幅不是固定 10%,而是依標的有價證券當日漲跌幅按比例計算(涉及 delta 關係),公式由 TWSE 另行規定,非一律 10%。實務上,若標的股票當日漲跌幅受限於 ±10%,對應的認購(售)權證的漲跌幅上限通常小於 ±10%(以標的有價證券漲跌幅乘以某個比例係數)。開發自動化盤前工具時,若要同時追蹤正股與其衍生性商品的動態,需注意兩者的漲跌幅計算規則不對稱。
可轉換公司債與普通公司債:
可轉換公司債(CB)及普通公司債的漲跌幅限制為 ±5%,與一般股票的 10% 不同。這意味著同一發行人的股票可以當日漲停(+約 10%),但對應的可轉換公司債同日最多只能漲 5%。在整合不同類型有價證券的資料時(例如把股票與 CB 同時納入觀察),需意識到兩者的漲跌幅上限本身不同,不能以同一個 ±10% 規則一刀切。
IPO 首 5 日的實務觀察:
新上市股票在前 5 個交易日無漲跌幅限制,理論上首日可以漲至任意高度,也可能大幅下跌。TWSE 為此期間維持集合競價機制(而非逐筆撮合),撮合頻率較盤中低,以降低流動性不足時的價格劇烈波動。第 6 個交易日起恢復 ±10% 限制與逐筆撮合。程式若要抓取 IPO 首周的即日資料,需意識到此期間的漲跌幅欄位不適用一般 ±10% 過濾邏輯。
⑤ 台股交易時段完整架構
TWSE 集中市場的交易時段分為多個區段,各有不同的撮合機制:
| 時段 | 時間 | 撮合機制 | 說明 |
|---|---|---|---|
| 委託接受 | 08:30–13:30 | — | 一般股票委託接受區間 |
| 開盤撮合 | 09:00 | 集合競價(一次) | 8:30 開始接受委託,09:00 單次集合競價決定開盤價 |
| 盤中撮合 | 09:00–13:25 | 逐筆撮合 | 每筆委託即時撮合,不等到下一個時點 |
| 收盤撮合 | 13:25–13:30 | 集合競價 | 最後 5 分鐘回到集合競價模式,決定收盤價 |
| 盤後定價交易 | 14:00–14:30 | 單次集合(14:30) | 以當日收盤價為成交基準,14:30 單次撮合 |
| 盤中零股 | 09:00–13:30 | 集合競價(每 5 秒) | 第一次撮合 09:10,之後每 5 秒一次 |
| 盤後零股 | 13:40–14:30 | 單次集合(14:30) | 14:30 單次撮合,與盤後定價交易同一時點 |
各時段關鍵差異說明:
開盤集合競價(08:30–09:00 累積,09:00 撮合):委託在 08:30 開始接受,但不即時撮合,而是累積到 09:00 一次性集合競價,系統依照所有委託的量價關係決定一個能使成交量最大的開盤價。開盤前委託如欲取消,09:00 之後即無法取消。
盤中逐筆撮合(09:00–13:25):委託進入系統後即時配對,若符合成交條件(買方出價 ≥ 賣方報價)立即成交。這是台灣股市 2020 年 3 月由集合競價(每 5 秒)改制為逐筆撮合後的現行機制,成交速度大幅提升。
收盤集合競價(13:25–13:30):最後 5 分鐘回到集合競價模式,13:25 後進來的委託不會立即配對,統一在 13:30 集合競價決定收盤價。這 5 分鐘的設計目的是減少最後一分鐘的價格操縱空間,同時讓大量尾盤委託能以相對公平的價格撮合。
盤後定價交易(14:00–14:30):以「當日收盤價」為固定成交基準,買賣雙方均依收盤價成交(不能指定其他價格),14:30 進行單次撮合。此時段適合接受以收盤價為進出基準的交易需求。
零股交易(盤中 09:10–13:30 · 盤後 13:40–14:30):零股不足一張(1,000 股)的委託走獨立通道,盤中零股每 5 秒一次集合競價,盤後零股 14:30 單次撮合。零股在台灣 2020 年放開盤中交易後,投資人可分批進出不足一張的部位,但流動性仍遠低於整張市場。
⑥ Persona A 常見疑問與機制對應
以下幾個常見疑問,根源均為對上述機制的理解落差:
「盤後委託掛進去,為什麼 14:30 之前都沒動靜?」
盤後定價交易在 14:30 才執行單次撮合,14:00–14:30 接受委託的期間,委託單在系統中等待,不即時成交。這是設計預期行為,非系統延遲。盤後定價交易的設計本意是讓無法在盤中即時操作的投資人(例如上班族在下午 2 點前無法盯盤),仍有機會以收盤價為基準進行交易,但代價是必須等到 14:30 才知道是否成交。若 14:30 買單與賣單無法配對(例如只有單邊委託),則不會成交,委託自動取消。
「漲停板漲了幾趴,為什麼不是整數 10%?」
如上文 ③ 所示,絕大多數股票的漲停價在 ×1.1 計算後需向下取整至合法 tick,導致實際漲幅略低於 10%。這是升降單位規則的必然結果,不是 TWSE 系統計算錯誤。當某股票被報導「今日漲停」,其實際漲幅可能在 9.95% 至 10.00% 之間,視原始計算結果是否恰好整除 tick 而定。程式若以固定 10% 來比對是否漲停,需注意用漲停價格本身與當日報價比對,而非直接算漲幅百分比。
「為什麼開高卻沒觸及漲停?明明開盤已經很強。」
開盤撮合的成交價由 09:00 集合競價決定。若盤前委託不足以推到漲停,開盤價可能遠低於漲停。盤中再逐漸拉高也可能因為成交量不足或賣壓而停在漲停前。另外,09:00 前的委託(08:30–09:00)會累積在集合競價池,開盤瞬間的成交量是這段時間所有委託配對的結果,而非即時委託。
「ETF 的漲停板為什麼比較高(或根本沒有)?」
多數股票型 ETF 使用與個股相同的 ±10% 規則,漲停 / 跌停計算邏輯完全相同。但部分特殊結構 ETF(例如槓桿型或反向型 ETF)依掛牌條件可能適用不同規範,或在特定條件下無漲跌幅限制。若同日某 ETF 漲幅超過 10%,需確認該 ETF 是否屬於無漲跌幅限制的特例,而非預設所有 ETF 皆無限制。
⑦ 漲跌停數量作為市場廣度輔助參考
TWSE 每交易日結束後可統計全市場的漲停個股數量(limit-up count)與跌停個股數量(limit-down count)。這兩個數字是觀察單日市場情緒強弱與方向廣度的輔助資料點,不依賴特定個股的方向性判斷。
漲跌停數量的觀察邏輯:
- 漲停數量高:表示當日有大量個股觸及 ±10% 上限,市場整體偏強,資金廣泛流入,不限於少數大型權值股。
- 跌停數量高:表示當日恐慌性賣壓廣泛,個股普遍承壓至極限,是市場情緒極度悲觀的反映。
- 兩者均低:市場走勢溫和或橫盤,無顯著方向動能。
這類全市場廣度資料(market breadth)的意義在於,大盤指數可能因少數重量級成分股的強勢而上漲,但漲停數量低時說明多數個股並未跟上,強弱分歧顯著。在三大法人籌碼資料(T86 endpoint)之外,漲跌停數量提供另一個維度的整體市場觀察。
漲跌停數量在 TWSE 每日盤後統計中可取得。此類資料的進階判讀邏輯,以及與 T86 籌碼面資料的交叉觀察框架,將在後續文章整理。
⑧ See also
- TWSE T86 欄位實況 — 三大法人籌碼欄位命名與抓取注意事項
- 三大法人資金性質差別 — 外資、投信、自營商的制度性差別與盤前判讀邏輯
- TWSE 交易制度說明 — 官方交易規則來源
※ 本文描述台股漲跌停機制、升降單位計算規則與交易時段架構,不構成投資建議,投資請自行評估風險。
資料來源:TWSE 交易制度
如果這篇對你有用: