本文以反面教材為主。融券最後回補日前買進高券資比股票,本次27組參數沒有一組通過驗證;其中15組根本沒有可用交易,中心設定也是零筆。 有交易的五日前進場示例只有一件事件,日夏普0.21,無停券配對組為負0.18,同期0050為1.66。這一件事件不足以證明軋空策略有效,也不足以證明強制回補沒有價格效果。
本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。
這次最重要的發現是資料時間:表裡有多年前的回補日期,不代表當時的策略已經拿得到那筆公告。把這個差別保留下來,才知道回測究竟測到了什麼。
圖表可點開原尺寸;主要結論與數字也列在正文,手機不必只靠圖例閱讀。
融券回補、強制回補與軋空,有什麼不同
融券賣出是先借股票賣出,之後再買回或依規定還券;買回還券稱為融券回補。軋空通常指價格上升迫使空方回補,回補買盤又可能推升價格。前者是交易或還券動作,後者是價格與部位互相影響的市場過程,兩者沒有必然的一對一關係。
依證交所融資融券業務操作辦法第76條,得為融資融券的證券涉及停止過戶時,融券有停止賣出與還券期限。實際適用原因、日期與例外應以公告及券商通知為準。本文直接使用停券表的最後回補日,沒有自行拿股東會日期減去固定日曆天數。
| 名詞 | 本文的定義 | 容易混淆的地方 |
|---|---|---|
| 融券餘額 | 尚未了結的融券數量 | 不是全部市場空單 |
| 券資比 | 融券今日餘額除以融資今日餘額,乘100% | 融資分母很小,也會讓比率很高 |
| 最後回補日 | 停券事件表記錄的還券期限 | 事件發生日不等於公告可取得日 |
| 軋空 | 空方回補與上漲互相推動的價格現象 | 有還券期限也可能沒有上漲 |
| 借券賣出 | 另一套借券來源與交易制度 | 本文沒有把借券餘額當融券餘額 |
如果關心的是融券餘額連續下降,而非公告日期,已有券資比等七種籌碼訊號回測。本文新增的是制度事件,不把連續訊號的結果直接套過來。另一種制度觸發研究是跌停反彈回測,兩種設計的事件時間也不同。
為什麼歷史回補日期不能直接往前買
本次資料快照包含39,407筆去重後、日期及入庫時間完整的停券事件,事件日期最早到2014年7月。但可觀測的入庫時間最早是2025年1月15日,許多舊事件是在那之後回填。若看到某股票2020年有回補期限,就讓策略在2020年提前買入,等於假設當時已拿到今天看到的資料版本。
為避免這個假設,研究只保留入庫時間早於訊號日期的事件,並額外留一天的保守間隔。回測從2025年1月16日開始,跑到2026年11月10日。這個日期代表本資料可驗證的範圍,沒有宣稱停券制度或市場公告從2025年才存在。
| 日期或欄位 | 用在哪裡 | 本次如何處理 |
|---|---|---|
| 最後回補日 | 計算預定進出場交易日 | 用交易日序列換算,不用日曆天硬減 |
| 入庫時間 | 判斷研究當時能否看到事件 | 必須早於訊號日,未提前可得就不做 |
| 融資券餘額 | 計算券資比與融券張數門檻 | 用訊號日資料,隔日開盤才執行 |
| 停券結束日 | 可能隨公告後續補齊 | 本策略不使用它決定進出場 |
入庫時間仍然不是完整的歷次公告版本庫。它可以擋掉明顯晚到的回填,卻不能復原所有歷史修訂,因此本研究的可用性限制不能被寫成「歷史公告效果已完整驗證」。這類問題可參考前視偏差:知道事件最後發生在哪一天,和當時知道未來會發生這件事,是不同的資訊條件。
27組條件在開跑前固定
中心設定是最後回補日前10個交易日開盤買進、券資比至少30%、融券餘額至少1,000張,於回補日後第二個交易日開盤賣出。另要求20日平均成交金額至少2,000萬元。訊號在買進前一個交易日形成,沒有用買進當天收盤才知道的餘額。
| 參數 | 中心值 | 相鄰值 |
|---|---|---|
| 提前進場交易日 | 10日 | 5、10、15日 |
| 最低券資比 | 30% | 20%、30%、40% |
| 最後回補日後出場天數 | 2日 | 0、2、5個交易日 |
| 融券餘額 | 至少1,000張 | 全部固定 |
| 流動性與權重 | 均成交額2,000萬元,單檔上限10% | 全部固定 |
三個主要參數全排列共27組,至少19組日夏普要高於同期0050,才達到七成門檻。這個標準沒有因為事件少就改寬,也沒有在看完結果後把融券餘額降到更容易產生交易的數字。研究股票池採歷史價格表中的四碼普通股編碼,排除0與91開頭;金融股、KY股、全額交割股未另排除,這套編碼篩選也可能漏掉其他代號的普通股。
有交易的12格,日夏普都低於同期0050;其他15格沒有事件,圖上直接標示「無交易」。沒有日報酬波動,就沒有可估計的夏普,不能把它寫成觀測到夏普為零的策略。下載結果為了讓驗證程式統一判定,無交易格以零作內部數值標記,另附說明;本文表格則用破折號表示。
三項驗證沒有通過,原因先是樣本不足
主要設定沒有交易,無法判定制度有效或無效。有交易的鄰近設定,也未形成穩定優勢。 中心設定就是開跑前選定的主要條件,並非看完結果挑出的一組。
| 檢查 | 主要設定的結果 |
|---|---|
| 參數高原 | 0/27(15格無交易) |
| 前後半段 | 兩段均無交易 |
| 預設成本 | 無成交,不能估計成本影響 |
| 平均權重 | 股票權重0%,相當於現金 |
| 移除最好年 | 無獲利年度可供判斷 |
同期0050前後半段的日夏普分別為1.36、1.95;主要設定兩段沒有交易,無法驗證跨時間的優勢。預設成本已保留,但無成交不等於證明成本低;主要設定的固定權重對照也是現金,不能把現金曲線當成擇時成果。無交易也讓移除最佳年度的檢查失去實證意義。
圖中固定回補日後第二日出場。提前五日的三個券資比門檻各一件,提前十日都沒有,提前十五日只有20%門檻一件。同一事件反覆出現在不同門檻、不同出場設定中,不能把12個有交易參數格說成12件獨立事件。
這項結果限制了主張範圍:目前這組資料、門檻和可用時間不足以支持部署策略。它沒有否定所有強制回補事件,也沒有把零筆交易當成零報酬的充分證據。若要回答更早年度的公告前行情,必須另外找到當時已發布且保存版本的公告,先補齊可得日,再把它當新的研究設計。
有交易的鄰近設定與無停券配對
為讓讀者看得到實際交易與報告,以下另列已登記網格中的五日前進場、券資比30%、回補後二日出場。它只用來展示一件事件的樣貌,中心設定仍是十日;沒有因為它有交易就改用它認定策略通過。
對照組在同一訊號日,從同樣滿足融券、券資比與流動性條件的股票中,依券資比差距由小到大配對;排除已知在該持有期間有停券事件者,同日不重複配對。兩組用相同的進出場日期與權重上限。這只控制了時間與券資比等篩選條件,沒有控制產業、市值或所有消息差異。
| 組別 | 合格事件/配對數 | 年化報酬 | 日夏普 | 最大回撤 |
|---|---|---|---|---|
| 五日前進場的停券事件示例 | 1 | 0.33% | 0.21 | -2.69% |
| 同期無停券配對示例 | 1 | -0.18% | -0.18 | -1.16% |
| 同期0050含息 | 持續持有 | 50.4% | 1.66 | -27.4% |
兩個示例的年化,是以2025-01-16至2026-11-10整段帳戶淨值計算,包含大量閒置現金,沒有把單筆報酬外推成可重複的年化機會。示例事件組雖高於配對組,僅一對觀測不能建立顯著差異,更不能推論是回補制度造成上漲。
互動報告對應上述五日前示例;無停券配對報告也可開啟。報告和中心設定是兩個明確標示的用途,沒有把樣本較少的曲線藏起來。
中心設定維持現金,兩條示例曲線也大部分時間沒有持股,0050則持續承擔市場波動。圖上所有線都從同一日的1起算;不能因示例的最大回撤較小,就跳過股票權重差異宣稱風險控制優於0050。
回補買盤為什麼未必形成可用優勢
最後回補日期是公開制度,其他投資人也能提前因應。空方可以在期限前逐步減倉,部分還券也不等於在最後一天集中以市價買回;股價同時還受營運、估值與整體市場影響。券資比高更不等於空單一定足以推動價格,因為比率沒有直接衡量市場可交易籌碼的深度。
Jones與Lamont(2002)研究美國歷史借券成本與放空限制,指出限制放空和後續報酬的關係值得注意。市場、年代與借券制度都不同,這篇文獻無法直接證明台灣最後回補日前適合買進。Lamont(2012)則研究公司對抗放空者的行為,包含可能製造軋空的措施;那也不是台灣定期停止過戶的同一種事件。
這些文獻提供機制背景,本文不拿它們補上缺少的樣本。對多重測試的疑慮,可再看Harvey、Liu與Zhu(2016):當測試很多條件時,少數較漂亮的結果尤其需要獨立驗證。讀者若想把事件研究放進更完整的選股流程,可以從股票選股指南比較不同資料來源的用途。
回測方法與限制
| 項目 | 本次做法 |
|---|---|
| 快照 | 資料截至2026-11-10;2026-11-11重跑,finlab 2.3.8、pandas 3.0.6 |
| 成交與權重 | 隔日開盤買賣、等權,單檔上限10%,不足留現金;未額外計現金利息 |
| 成本 | sim預設每邊手續費0.1425%,賣出證交稅0.3%;沒有為通過驗證而設零成本 |
| 滑價與成交限制 | 未額外設定滑價,未模擬停板排隊或延後出場,未估算容量 |
| 周轉率 | 中心設定無交易,平均與單月最高目標權重周轉率均為0;無法據此估計可用交易頻率 |
| 基準 | etl還原收盤價的0050,純算術含息、不扣成本,期間和策略一致 |
| 樣本內外 | 全段樣本內,沒有獨立樣本外;前後切半無法補足零交易問題 |
尤其要留意:歷史價格資料雖納入有紀錄的下市股票,仍不代表公告與餘額資料也同樣完整。入庫限制減少明顯前視,沒有消除所有資料選擇偏差。回測與可執行交易的差距,另見回測常見限制;處置期間的制度變化則可比較處置股時點研究。
常見問題
融券回補一定會漲嗎?
不一定。還券是期限要求,價格方向要看實際供需。本研究的有交易格都沒贏0050,樣本又少,無法建立可重複的交易優勢。
券資比多少才會軋空?
沒有經本次研究驗證的通用門檻。20%、30%、40%是事前固定的測試值,不能因為某一件事件上漲,就把其中一個數字當安全線。
為什麼十日前沒有交易,十五日前反而有一件?
因為券資比、融券餘額和流動性都在各自訊號日重新判斷。不同日期可能滿足不同條件,且必須同時通過事件已入庫的限制,事件數不必隨提前天數單調變化。
表中有十多年資料,為什麼不直接測十年?
回填事件日期沒有證明當時可取得。本文保留可觀測入庫時間的限制,避免把今天的完整表格當成十年前已知資訊。
融券和借券可以合併算空單嗎?
兩者來源與制度不同,不能直接用同一張餘額表代替。本文只測融資融券資料,不對全部空方部位下結論。
這個研究可以直接拿來實單嗎?
不適合。中心設定沒有樣本,示例也只有一件事件。先依程式交易研究流程核對時間、條件與樣本,沒有足夠證據前,不把研究報告當交易訊號。
研究程式與下載
下載的程式預設保留十日前中心設定。若要重現本文互動示例,使用下列明確參數;程式只做研究,不把回測上傳到個人帳號。
顯示程式碼
from strategy import build_report
report = build_report(lead=5, ratio_min=30, lag=2)
report.to_html("report_strategy.html")| 檔案 | 內容 |
|---|---|
| strategy.py | 事件日期與回測程式 |
| metrics.json | 27組設定與樣本數 |
| data.csv | 每日結果與0050對照 |
FinLab量化研究團隊以公開資料與套件執行研究,保留失敗結果與資料限制,供讀者重跑和比較,沒有推薦個股。
投資有風險,過去績效不代表未來表現。本文僅供研究與教學參考,不構成投資建議;還券期限、公告變更與成交限制都可能影響實際結果。
最後更新:2026-11|回測區間:2025-01-16至2026-11-10|作者:FinLab量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始





