台股軋空 · 判死 判死
我的 alpha 小於這些股票的日常波動
更新 2,812 字 · 約 8 分鐘
台股兩條線全部判死。機制是真的、毛 alpha 也是真的,但摩擦吃掉 31%,淨 alpha 的月聚類 t 只剩 1.67。而交易抓到的 +3.04% 只等於 1.16 個典型單日振幅、0.33 個標準差 —— 同一批股票隨機挑九天,有 29.3% 的機會就贏過它。
台股這條線在 2026-08-14 全線判死,從未投入資金。判死的理由可以壓成一句話:
機制是真的,毛 alpha 也是真的,但 edge 比摩擦成本小。
而最難看的一段不是統計,是一句被量化的批評:我抓到的漲幅,小於這些股票平常自己的波動。
線一:停券強制回補
台股的融券有一個制度性的強制平倉點。證券投資人及期貨交易人保護中心(查證日期 2026-08-27)寫的是:融券之有價證券須自發行公司停止過戶前 6 個營業日起停止融券賣出 4 日,已融券者應於停止過戶第 6 個營業日(含)前完成還券了結。
也就是說,時間到了,空方必須買回,不管他想不想。這是一個結構上沒有 lookahead 的入口:日曆是事前公告的。
機制本身經得起查:流量資料顯示 98.3% 的高燃料事件餘額真的塌下來,其中 76.5% 是券買。
| 數字 | |
|---|---|
| 相對 0050 的毛 alpha | +2.20%/筆,月聚類 t=2.43 ✅ |
| 來回摩擦 | 0.68% |
| 摩擦吃掉毛 alpha 的 | 31% |
| 淨 alpha | +1.52%,月聚類 t=1.67 ❌(門檻 2.0) |
摩擦的 0.68% 不是估的:證交稅 0.300%(證券交易稅條例第 2 條,公司發行之股票徵千分之三,查證日期 2026-08-27)、手續費 0.171%、滑價 0.200%。
而且不是「差一點」。 在任何燃料門檻下都沒過:1.21 / 1.58 / 1.67 / 1.52。
上面所有的 t 都是月聚類的,不是逐筆的。停券日曆是集中的:股東會旺季在五到六月、除權息在七到八月,同一個月的交易會一起被那個月的大盤帶著走。逐筆檢定會把這種相關當成獨立樣本,t 值因此虛胖。按月聚類等於承認「同一個月只算一次獨立觀察」,數字會變難看,但那才是真的。
死因是三件事同時成立
| # | 事實 | 數字 |
|---|---|---|
| 1 | 燃料太少 | 融券中位只佔流通在外 0.0041%;只有 1.4% 的停券事件有 ≥1% 的燃料 |
| 2 | 機會太少 | 16.3 筆/年、持有 9 個交易日 → 資金使用率 3.3%,三分之二的交易日一格都沒有 |
| 3 | 摩擦吃掉 alpha | 見上表 |
第 1 條決定第 2 條,第 2 條讓帳戶年化只剩 +4.25%,第 3 條把僅存的 alpha 推到顯著性之下。
燃料太少這件事有一個結構性原因:借券賣出的規模是融券的 102 倍,而借券走的是另一套制度(證券商辦理有價證券借貸管理辦法,依證券交易法第 60 條第 2 項訂定,查證日期 2026-08-27),不受停券強制回補的約束。
換句話說:這個策略瞄準的是空方部位裡佔比不到 1% 的那一小塊,而那一塊剛好是唯一被制度逼著回補的。
對照組給的答案很直接
| 對照 | 年化 | 最大回撤 | 報酬/回撤 |
|---|---|---|---|
| 0050 買進持有(同期、含息、已處理 1 拆 4) | +21.50% | −34.0% | 0.63 |
| 停券策略 | +4.25% | −5.8% | 0.73 |
風險調整後兩者接近,絕對報酬差 5 倍。而那 0.73 的報酬/回撤比是用 3.3% 的資金使用率換來的:一個大部分時間空著的帳戶,回撤當然小。
一個很容易騙到自己的對比
這條線有一個看起來過關的檢定:對零檢定 t=+2.34,通過。
它跟三條否證證據並不矛盾,因為它們量的根本不是同一件事:
那個 t 量的是「這 9 個交易日台股有沒有漲」,不是「這個訊號有沒有用」。
三條獨立否證各自從不同角度給出否定:
- vs 同日同產業的低燃料組:t=+1.47
- 淨 alpha vs 0050,月聚類:t=+1.67
- 去掉最賺的 10% 之後,淨報酬 −0.73%
第一條是三條裡最關鍵的:同日、同產業、低燃料的對照組,把大盤走勢與產業輪動都扣掉之後,剩下的才是「燃料多寡」這件事本身值多少。它給的是 +1.47,比對 0050 的 1.67 還低。換句話說,那個看起來過關的 2.34 裡面,絕大部分是我不做這件事也會拿到的東西。
一個對零檢定在多頭期間幾乎一定會過,因為它的虛無假設是「報酬等於零」,而不是「報酬等於你不做這件事也會拿到的那個」。選錯對照組,統計就會替你背書。
線二:騎乘噴發
起因是使用者的一句批評,而且它可以被量化
「我是覺得你對於擠壓這件事抓到的波動太小了,個股 4% 應該只是很正常甚至一般日內波動而已。」
我把這句話拿去量。線一交易抓到的漲幅是 +3.04%:
| 對照 | 結果 |
|---|---|
| 這些股票的典型單日振幅(中位) | 2.62% → +3.04% ≈ 1.16 個單日振幅 |
| 這些股票的 9 日報酬標準差 | 9.19% → +3.04% = 0.33 個標準差 |
| 同一批股票的隨機 9 日窗口 | 29.3% 的機會就贏過 +3.04% |
| 真正偵測到的擠壓事件,8 週漲幅中位 | +286.4% → 量級差 94 倍 |
批評成立,而且比原本的講法更嚴重。 隨機挑九天有將近三成的機會贏過我的訊號,那不叫 edge,那叫在雜訊裡撈到一個略微偏正的數。
為了「結構上無 lookahead」而選了停券日曆這個入口,代價是拿到一個小於雜訊的漂移。而真正的母體(87 個偵測到的擠壓事件)從來沒有被交易過。
右尾確實存在
偵測本身是有東西的。1,919 筆訊號、862 檔股票、160 筆/年,持有 60 個交易日的最大有利偏移分布:
| MFE | 比例 |
|---|---|
| ≥ 20% | 46.8% |
| ≥ 50% | 17.0% |
| ≥ 100% | 4.8% |
| ≥ 200% | 0.9% |
六分之一的訊號在 60 個交易日內曾經浮盈超過 50%。問題是**「曾經浮盈」不是報酬**:要把那 17% 變成錢,得有一個機制在它回吐之前出場,而下一節顯示我事前寫下的兩個出場都做不到,甚至讓結果更差。右尾存在與右尾可收割是兩件事,這條線死在後者。
但買進持有是負的
| 持有 | 平均淨 | 中位 | 勝率 | MFE 中位 | MAE 中位 | 減 0050 | 月聚類 t |
|---|---|---|---|---|---|---|---|
| 20 日 | +0.50% | −2.92% | 42.3% | +10.8% | −10.8% | −1.23% | −1.30 |
| 40 日 | +1.30% | −3.82% | 42.9% | +14.6% | −14.8% | −1.85% | −1.95 |
| 60 日 | +2.84% | −3.41% | 44.7% | +18.2% | −17.5% | −2.00% | −1.49 |
| 120 日 | +7.36% | −5.06% | 43.2% | +25.1% | −22.8% | −3.68% | −1.93 |
逐年為正只有 3/12。 而且 MFE 中位 +18.2% 對上 MAE 中位 −17.5%,上下幾乎對稱 —— 一個對稱的偏移分布加上 44.7% 的勝率,實現報酬當然是負的。
拉長持有期讓平均淨報酬從 +0.50% 一路升到 +7.36%,看起來像「抱久一點就好了」。但同一欄的「減 0050」是從 −1.23% 惡化到 −3.68%:它漲,是因為大盤在漲。 這是這條線第二次栽在對照組上,跟上一節那個對零檢定是同一個錯誤的兩種樣子。
出場救不了,而且讓它更糟
兩個出場候選是事前就寫下來的,照原樣測:
| 出場 | 平均淨 | 減 0050 | 月聚類 t |
|---|---|---|---|
| 純持有 | +7.37% | −3.68% | −1.92 |
| 封死隔日開盤(事前候選) | +5.92% | −5.13% | −4.10 |
| 漲停打開(事前候選) | +6.26% | −4.79% | −3.77 |
| 回撤 20% | +2.10% | −8.95% | −7.18 |
四種全負,而且兩個事前候選比什麼都不做更差。
機制很清楚:這兩個出場只在漲停時觸發,於是它們把右尾砍掉,而左尾原封不動地跑到時間上限。〈出場規則換一下,同一批交易從 −86% 變 +3%〉那篇講的是出場設計決定成敗;這裡是同一句話的反面:出場設計也可以主動把事情弄得更糟。
我自己寫進去的 lookahead
使用者第三次指出問題,第三次都對:
「你這就表示你前面的預測就有問題啊,n 值差這麼多。真的碰到事件(要從這邊去找規律吧),不能完全拿幣圈規則來套啊。」
線二的進場條件全部是從別的市場搬過來的,沒有一個是從台股那 87 個事件本身學出來的。結果就是:1,919 筆訊號只抓到 32 個事件,命中率 1.67%。
而原本用來支撐它的那個風險率發現,後來也作廢了:95% 來自窗口重疊,不重疊時只剩 0.68 倍。
這跟〈檢查因為錯誤的理由而通過〉是同一族:一個看起來有效的東西,有效的理由是錯的。
兩條線的死因其實是同一個
本專案最強的兩個發現,預測的都是「事件會不會發生」,不是「交易會不會賺錢」。
停券那條預測「餘額會不會塌」,準確度 98.3%;騎乘那條預測「哪些股票會噴」,AUC 0.781。兩個都對。兩個都不賺錢。
而這句話在幣圈那條線的判死報告裡已經寫過一次,當時的措辭幾乎一樣:它預測的是事件會不會發生,不是交易會不會賺錢,而該次證明了前者不蘊含後者。
同一句話,兩個完全不同的市場、兩套完全不同的資料,各自獨立驗證了一次。 這比任何一個正報酬都更值得記住,因為它是可以帶著走的:先問你的模型在預測什麼,再問它值多少錢。
還剩什麼沒被證否
只有一件事活著:波動率預測右尾的能力,AUC 0.781。它甚至跨市場複製到了數值層級 —— 幣圈那條線量到的是 0.779,兩個市場、兩套資料,差 0.002。那不是巧合能解釋的相似度,而它是這條線唯一沒有被證否的東西。
真正缺的是另一半:一個能把右尾封頂的載體。選擇權或價差結構可以讓你只買右尾、把左尾的成本鎖死,而台股個股沒有流動的選擇權市場。所以這件事在台股是「知道但做不到」。
兩條線都死之後,剩下的不是「再找一個進場條件」,而是:有沒有一個載體,能把 17% 的 MFE≥50% 變成錢,同時不被其餘 83% 的部位吃掉。
那不是資料問題,是工具問題。台股目前沒有那個工具,所以這條線停在這裡,2,126 檔的資料頁也不做。
常見問題
毛 alpha 有 t=2.43,為什麼不算通過? 因為毛的數字不能交易。扣掉證交稅、手續費與滑價之後是 t=1.67,而門檻 2.0 是 2026 年這批實驗開跑之前就寫死的。這條線在任何燃料門檻下的淨值都沒過。
摩擦 0.68% 是不是估得太保守? 證交稅 0.300% 是法定的,手續費 0.171% 是實際費率,滑價 0.200% 是估計值。就算滑價估成 0,淨 alpha 也只到 t≈1.9 左右,仍然沒過 —— 而把滑價估成 0 是不誠實的。
為什麼可以把這條線的細節全部寫出來? 它已經判死、從未投入資金、不會部署。仍在運作的線的參數,這個站上一個字都沒有,理由寫在〈方法論〉。
借券的規模是融券的 102 倍,為什麼不改用借券資料? 因為借券沒有那個強制回補日。這條線交易的不是「空單很多」,是「空單被制度逼著在某一天買回」。借券的部位可以一直續,沒有那個日曆事件,也就沒有可以交易的時點。規模大不等於可交易 —— 這跟本篇的主軸是同一句話的另一個版本。
AUC 0.781 聽起來不錯,真的沒用嗎? 它有用,只是用在別的地方:那是「哪些股票會有右尾」的預測力,不是「買進之後會賺錢」的預測力。這兩件事差 94 倍量級,中間隔著的正是這篇在講的東西。