本文以反面教材為主。收盤跌停後隔天開盤買進、持有五個交易日,在本次設定下年化報酬為負19.6%,最大回撤93.9%。把一字跌停、非一字收盤跌停分開,兩組也沒有通過驗證;全市場跌停家數暴增時才買0050,日夏普只有0.07,同期持有0050為1.04。 跌停後偶爾有強勁反彈,仍不足以支持機械式抄底。
本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。
圖表可以點開原尺寸。本文的進場判斷在當日收盤後形成,最早隔日開盤成交,沒有用當日跌停價回頭買進。
跌停是什麼,為什麼不等於便宜
跌停是當日允許的最低成交價格。依證交所交易制度說明,普通股票的限制以當日開盤競價基準計算,價格還要符合升降單位;台股自2015年6月1日由7%放寬為10%。除權息、減資、面額變更時,競價基準可能和昨天收盤不同。
限制價格只約束今天能成交的位置,沒有替公司的合理價值設定下限。新的壞消息若還沒反映完,隔天可以再跌;委賣很多、買盤很少時,持有人也可能無法在回測指定的價格賣出。這個問題和一般短期反轉研究不同:短期反轉依報酬排序,本文依交易制度觸發事件。
| 分類 | 本文可從日資料確認的條件 | 不能推論的事 |
|---|---|---|
| 收盤跌停 | 收盤等於依升降單位取整後的跌停價 | 隔天一定反彈 |
| 一字跌停 | 收盤跌停,當日最高價等於最低價 | 所有人的賣單都能成交 |
| 非一字收盤跌停 | 收盤跌停,當日曾在更高價格成交 | 確切何時開板、開板多久 |
| 盤中觸及、收盤離開跌停 | 當日最低碰板,收盤回升 | 本文沒有把這一類混入收盤跌停樣本 |
日線只能辨識一字與非一字,沒有逐筆委託簿,無法證明「鎖死」期間的排隊數量。後文的一字跌停也只使用上述定義。涉及排隊、延遲成交與資金規模的問題,可搭配流動性風險實測閱讀。
五個方向,哪一項通過了驗證
三種個股跌停買進、恐慌買0050及避開恐慌,都未通過本文驗證。 主要設定下,全部收盤跌停隔天買進平均每年虧19.6%,期間從高點最多跌93.9%;同期持有0050則平均每年賺19.8%。
左右滑動表格,查看日夏普與最大跌幅 →
| 設計 | 年化報酬 | 日夏普 | 最大回撤 | 前/後半段日夏普 | 鄰近參數贏0050 |
|---|---|---|---|---|---|
| 收盤跌停隔天買進 | -19.6% | -0.62 | -93.9% | -1.03/-0.33 | 0/9 |
| 一字跌停隔天買進 | -11.8% | -0.82 | -83.1% | -1.34/-0.35 | 0/9 |
| 非一字收盤跌停隔天買進 | -14.4% | -0.41 | -86.9% | -0.91/-0.05 | 0/9 |
| 跌停家數暴增才買0050 | 0.1% | 0.07 | -37.4% | -0.51/0.39 | 0/9 |
| 避開恐慌訊號,其餘持有0050 | 14.5% | 0.95 | -35.5% | 1.05/0.86 | 1/9 |
| 同期0050含息 | 19.8% | 1.04 | -34.0% | 0.90/1.16 | — |
以下個股設計的中心值都是持有五日、20日平均成交金額至少2,000萬元;同一股票再次出現訊號,持有期間向後延長。恐慌訊號使用當日跌停家數,超過前252個交易日的97.5分位,且家數大於零;門檻計算先落後一天,沒有把今天的家數放回去決定今天的門檻。
「贏」統一定義為日夏普高於同期0050,不扣無風險利率。前三個個股設計、恐慌買進與反向持有,三項驗證都未全部通過。這裡沒有把較小的年化損失解讀成勝出,也沒有因為反向設計有一格較好就換成那一格推薦。
互動報告對應「全部收盤跌停」的中心設定,已扣預設交易成本。非一字組另附對照報告,恐慌買進與反向持有也可在文末下載區開啟。
跌停價怎麼重建,哪些日子排除
一般日以前收盤乘上93%或90%,再向不超出跌幅限制的方向取整。例如證交所的計算範例,競價基準40.60元乘90%為36.54元,符合升降單位的跌停價是36.55元。直接把每日報酬小於負9.5%當跌停,會把接近停板的股票混進來;未處理除權息,也會把價格調整誤當市場賣壓。
本文排除還原價相對原始價的調整因子發生變化的日期,也排除資料中前五次有收盤價的交易日。這個篩選降低公司行動及新上市無漲跌幅限制的干擾,沒有宣稱重建了每一種特殊交易制度。金融股、KY股與全額交割股沒有另行排除;普通股採四碼數字代號、排除0及91開頭的編碼規則,可能漏掉其他編碼的普通股。後來下市且價格表仍有歷史紀錄者也在樣本內。
完整期間共辨識19,762筆收盤跌停股票日,其中4,163筆是一字;套用中心流動性條件後,三組事件數分別是11,594、1,985與9,609。連續跌停會產生多個股票日,這些數字並非獨立公司數,也不能當成彼此獨立的統計樣本。
上櫃漲跌停未成交表從2026年5月起才有資料。對齊這張表的股票與日期後,本研究重建出700筆跌停,700筆都能在官方來源表找到同日跌停標記。這是近期子樣本的一致性檢查,沒有證明歷史樣本零誤差,也沒有用這個標記替代逐筆成交驗證。
換參數與切時間,結果仍沒有形成穩定高原
前三組各用持有3、5、10日,搭配20日均成交額1,000萬、2,000萬、3,000萬元,共九格;擇時兩組則用同樣三種持有天數,搭配95、97.5、99分位。熱圖每格顯示策略日夏普減去同期0050,紅色表示較低。至少七格要贏,才算參數附近有一片高原;45格只有反向持有的一格勝出。
期間依日曆長度對半切,前後兩段各自重新計算,不拿全期的0050夏普充當兩段基準。避開恐慌日的中心設定前段1.05,高於0050的0.90,後段0.86卻低於1.16;另外四個設計的中心設定,兩段都輸。這是反向設計未過關的直接原因之一。
五個設計和0050都從同一日的1開始。三條個股曲線長期下降;恐慌買進長時間留在現金,因此曲線比較平,仍曾回撤37.4%。避開恐慌日的終值較高,但年化報酬與日夏普都低於持續持有0050。曲線平緩本身無法證明擇時有幫助。
現金比例與最好的一年,會不會改變判斷
| 設計 | 平均股票資金比重 | 同比重固定持有0050的年化 | 本設計年化 | 移除自身最好年後:策略/0050日夏普 |
|---|---|---|---|---|
| 全體收盤跌停 | 59.8% | 11.9% | -19.6% | -0.69/0.99(移除2023) |
| 一字跌停 | 9.9% | 2.0% | -11.8% | -0.87/0.97(移除2019) |
| 非一字收盤跌停 | 57.1% | 11.4% | -14.4% | -0.45/0.99(移除2023) |
| 恐慌買0050 | 10.8% | 2.2% | 0.1% | -0.30/0.95(移除2026) |
| 避開恐慌日 | 89.2% | 17.7% | 14.5% | 0.82/1.01(移除2020) |
固定持有對照把0050的每日含息報酬乘以相同平均股票權重,其餘現金報酬設為零;沒有扣交易成本。在這個零現金利率的算式下,固定縮放報酬不改變日夏普,對照的日夏普仍約1.04。這項檢查避免把少承擔市場風險,直接說成交易時點選得好。移除最佳年時,策略與0050移除相同日期,再以剩餘日報酬算夏普;2026年只包含截至11月10日的資料。
回測方法與成交限制
| 項目 | 設定與限制 |
|---|---|
| 資料截至/重跑日 | 2026-11-10/2026-11-11;finlab 2.3.8、pandas 3.0.6 |
| 成交 | 收盤形成訊號,隔日開盤買賣;個股等權、單檔上限10%,不足部分留現金;0050擇時最多100% |
| 交易成本 | sim預設手續費每邊0.1425%,賣出證交稅0.3%,未設零成本 |
| 滑價與成交失敗 | 未額外設定滑價,未模擬停板排隊與延後出場;一字跌停不能保證依回測成交 |
| 周轉 | 目標權重變動估算的單邊月周轉率,三組個股平均280%、36%、271%,單月最高675%、283%、669%;未含價格漂移造成的再平衡差異 |
| 容量 | 未估算,均成交額門檻不代表所有資金規模都能成交 |
| 基準 | etl還原收盤價的0050買進持有,純算術、不扣成本,使用相同日期 |
| 樣本內外 | 全段樣本內;分段、鄰近參數與刪年度都不是獨立樣本外驗證 |
未模擬成交失敗,是使用日頻回測的重要限制;不能把本表當實單績效估計。即使先採用能按開盤成交的假設,這些條件也沒有達到穩健性要求,因此本文不提供可直接採用的策略頁。研究設計和實單之間還有哪些差距,可參考回測限制與滑價定義。
跌停反彈的文獻,支持的是研究問題
Kim與Rhee(1997)研究東京證交所價格限制,提出波動外溢、價格發現延遲與交易干擾的證據。它提醒我們,碰到停板不等於資訊已反映完;日本制度與本文台股樣本不同,不能拿來保證台股隔天的方向。
Harvey、Liu與Zhu(2016)討論大量測試帶來的假發現。本文因此保留事前登記的所有格子,沒有從少數成功交易回頭調門檻。這項研究支撐的是檢驗方法,沒有直接證明跌停策略一定虧損。另一種台股制度事件,可看融券回補與軋空研究;暫停交易後復牌則整理在暫停交易回測。
常見問題
跌停隔天一定會反彈嗎?
不一定。本次全體收盤跌停隔日買進的九組參數都未勝過0050,個別反彈例子不能替代整體檢驗。
一字跌停更容易撿便宜嗎?
本次一字組的中心設定年化為負11.8%,日夏普負0.82,且日資料無法保證開盤成交。價格低與可交易優勢是兩件要分別驗證的事。
非一字跌停代表賣壓結束嗎?
本文只能知道當日曾以較高價格成交,最後仍收在跌停。這組年化負14.4%,不能據此判定賣壓已結束。
全市場跌停很多家,買0050可以避開個股風險嗎?
分散標的能減少單一公司的影響,但恐慌擇時仍會遇到市場繼續下跌。本次中心設定只有10.8%的時間持有,卻曾回撤37.4%。
直接避開這些日子比較好嗎?
反向中心設定前段較好、後段較差,九格僅一格贏。本文沒有找到可穩定使用的避險規則。
怎麼自己重跑,而不是只看圖?
先依程式交易研究流程設定環境,再下載下列程式。保留日期、分類與成本,重跑後先核對事件數;若改定義,應視為新的實驗。
程式與研究下載
下載程式中的預設值對應全體收盤跌停。以下範例只呼叫一次回測,研究報告不會上傳到個人帳號。
顯示程式碼
from strategy import build_report
report = build_report(kind="all", hold=5, liquidity=20_000_000)
report.to_html("report_strategy.html")| 檔案 | 內容 |
|---|---|
| strategy.py | 跌停分類與回測程式 |
| metrics.json | 45組設定與完整檢查 |
| data.csv | 每日結果與0050對照 |
| 恐慌買進報告 | 97.5分位,持有五日 |
| 避開恐慌日報告 | 同訊號反向持有 |
研究團隊使用FinLab資料與回測套件,公開條件、程式及失敗結果供讀者核對。本文沒有推薦特定股票。
投資有風險,過去績效不代表未來表現。本文僅供研究與教學參考,不構成投資建議;跌停可能無法賣出,實際損失與回測可能有明顯差異。
最後更新:2026-11|回測區間:2015-01-05至2026-11-10|作者:FinLab量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始





