台股近漲跌停的隔天確實比較會動,但這件事拿去預測沒有用:0050 十七年、4216 個交易日的實測
讀者互動
登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
台股的漲跌停板是少數幾件「所有人都知道、但很少人量過」的制度。每天最多漲 10%、跌 10%,這條線就掛在那裡,盤中一有股票貼上去,看盤軟體會亮,討論區會吵。
我們自己先前寫過兩篇跟它有關的文章。一篇用 61 萬多筆台股個股資料檢驗「近停板的股票隔天是不是比較會動」,答案在 2015 年放寬規則之前是成立的:那些股票隔天的波動確實多出 0.429 個百分點,統計上站得住腳。另一篇談停板像水壩,把當天走不完的力道推遲到隔天。
這篇文章不重複那兩個問題。它問的是接在後面的那一個,而且是很多人跳過的那一個:
既然這個現象是真的,那把它寫進波動預測模型,預測會不會變準?
這兩件事聽起來像同一件,實際上差很遠。前者問的是「有沒有」,後者問的是「有沒有用」。一個現象可以千真萬確,同時對預測毫無貢獻,而後者才是拿真錢做決策的人真正需要的答案。
這次量的是什麼
標的是 0050,台灣五十指數 ETF。資料從 2009-01-05 到 2026-03-30,共 4216 個交易日,其中 2731 天被留作樣本外檢驗,也就是模型在做這些預測的時候,完全沒有看過答案。模型每隔 63 個交易日(大約一季)用當時為止的所有資料重新估計一次,整段期間總共重估 44 次。
比較的是三個模型:
- 基準模型 :一個標準的波動預測模型,只用 0050 自己過去的報酬。
- 大動開關 :在基準模型上,額外加一個開關,昨天單日漲跌幅超過 5% 的話,開關亮起。
- 小動開關 :同樣的東西,但門檻放寬到 3%。
先把一個誠實邊界說在前面
那個開關 不是 「有沒有撞到漲跌停」,是「昨天有沒有大動」。
這個差別必須講清楚,因為它會改變你怎麼讀後面的結果。0050 是一籃子五十檔成分股,成分股各漲各跌會互相抵銷,指數本身要在單日走到 ±10% 幾乎不可能發生。所以研究上實際能做的,是用「單日大幅波動」當作停板壓力的代理指標,而不是真的去數 0050 撞了幾次停板。
換句話說,這篇文章能回答的是: 把「昨天大動」這個開關加進波動預測模型,有沒有增量? 至於「真正撞到停板的那一瞬間有什麼特殊性」,個股層級才問得動,指數層級問不動。這是資料的限制,不是我們選擇不談。
結果:三個模型的預測評分幾乎疊在一起
評分方式是同一把尺量三個模型的樣本外預測誤差,數字越接近代表越難分辨。
| 模型 | 樣本外預測評分 | 與基準的差距 |
|---|---|---|
| 基準模型(不加開關) | -8.0448 | — |
| 大動開關(單日超過 5%) | -8.0433 | 第三位小數 |
| 小動開關(單日超過 3%) | -8.0488 | 第三位小數 |

三個分數的全距大約是零點零零五,相對於分數本身的水準大約是萬分之七。也就是說,加了開關之後,整體預測誤差的變化不到萬分之一的量級。
但「看起來差不多」不是結論,得問這個差距在統計上能不能分辨。三次兩兩比較的強度是:
| 比較 | 檢定強度 | 對應的偶然機率 |
|---|---|---|
| 基準 對 大動開關 | -0.22 | 0.8233 |
| 基準 對 小動開關 | 1.07 | 0.2847 |
| 大動開關 對 小動開關 | 0.95 | 0.3422 |

這個領域常用的判定門檻是強度絕對值超過 3.0。三次比較的絕對值分別是 0.22、1.07、0.95,離門檻最近的一次也只走了三分之一的路。沒有任何一個開關被判定為改善。
順帶一提,另一把常見的誤差尺(平方誤差)也量了一次,答案一致:三個模型分別是 1.8074、1.8100、1.7892,單位都是千萬分之一,差距出現在小數點後第二位。換一把尺,「分不出來」這個結論沒有改變。
為什麼會這樣:開關幾乎不亮
第一個原因非常直白,直白到看一眼次數就懂。
4216 個交易日裡,「單日超過 5%」的開關只亮過 39 次,佔比大約百分之零點九。而在真正拿來評分的 2731 天樣本外期間,它只亮過 12 次。

門檻放寬到 3% 也沒有改善多少:全樣本 122 次、樣本外 66 次。
一個在兩千七百多天裡只作用十二天的變數,就算它在那十二天完全正確,攤到整段期間的預測評分上也幾乎看不見。這不是「效應被推翻了」,這是 檢定力 的問題,樣本裡的事件太少,少到任何統計程序都無法把它跟雜訊分開。
這一點值得停下來想。很多人看到「不顯著」就理解成「沒有效果」,但這兩句話在資料稀少的時候完全不是同一件事。誠實的講法是: 在這個標的、這段期間、這種頻率的資料上,我們沒有能力回答這個問題。
第二個原因:你想加的那個資訊,模型可能已經有了
還有一層結構上的理由。
這次的基準模型不是天真地把所有日子一視同仁,它本身就包含一個非對稱項,會依據昨天的報酬(尤其是下跌)調整今天的波動預期。而我們加上去的開關,說穿了是「昨天報酬絕對值超過某個數」,那是同一個輸入的粗化版本:把一個連續的數字砍成開或關兩格。
這在數學結構上必然重疊。模型已經在讀昨天的報酬了,你再告訴它「昨天很大」,資訊多半是重複的。
但要說清楚證據等級 :實驗本身沒有做拆解檢定,沒有量出「事件太稀少」與「資訊已被基準模型吸收」各佔多少。原始結果檔把這兩個列為並列的候選解釋,不是已驗證的結論。上面這段是模型結構決定的推論,不是這次量到的數字。把它當成一個合理的方向,不要當成已經定案的機制。
可以帶走的三件事
第一,「現象存在」和「拿來預測有用」是兩個問題,答案可以不一樣。 我們先前那篇文章證明了近停板個股隔天確實比較會動,這篇沒有推翻它。這篇說的是:把同樣的直覺往上搬到指數層級、寫進正式的預測模型,增量消失了。看到任何「某某現象確實存在」的研究,下一句該問的永遠是「那它有沒有進到某個能用的地方」。
第二,個股層級成立的事,指數層級常常會被稀釋掉。 五十檔成分股各自撞停板的日子並不同步,加總成指數之後,那些極端事件互相抵銷。這不只適用於漲跌停,任何從個股觀察出發的訊號,往 ETF 或指數搬的時候都該先問一次:這件事在加總之後還剩多少?
第三,模型已經知道的事,你再加一次不會變好。 在往預測模型裡塞新變數之前,先問它跟既有變數是不是同一個輸入的不同寫法。很多「加了沒用」的失望,源頭其實是加進去的東西早就在裡面了。
這篇文章沒有回答什麼
- 沒有測真正的停板事件。 開關是「單日大動」的代理,不是實際觸及 ±10% 的紀錄。個股層級的停板研究要另外做。
- 沒有拆解兩個候選原因。 稀少與重複各佔多少,本次沒量。
- 只有一個標的。 結論限於 0050,沒有推廣到其他台股 ETF 或個股。
- 只有日資料。 用的是收盤價推出的日波動代理,看不到盤中貼近停板的過程;那需要逐筆或委託簿資料。
- 樣本期間橫跨制度變動。 台股漲跌幅限制在 2015 年 6 月從 ±7% 放寬到 ±10%,本次的開關門檻是固定的百分比,沒有依制度分段。
本文的數字全部程式化取自兩份已凍結的實驗結果檔:experiments/k790v2/k790v2_taiwan_price_limit_results.json(本文採用的版本)與 experiments/k790/k790_taiwan_price_limit_results.json(更早的版本,因為樣本外指標無效而被前者取代)。資料來源 yfinance 日收盤價,標的 0050.TW,期間 2009-01-05 至 2026-03-30,全樣本 4216 個交易日、樣本外 2731 個交易日。圖表由 storage/drafts/k790_charts.py 從同一份結果檔重繪,不連網。
懶人包圖組




相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊