外資大賣怎麼辦?三套法人跟單規則實測,只有一套贏過 0050

看到外資大賣就想跑、看到投信買超就想跟,是台股散戶最常見的兩個直覺。我們用 pip install finlab 把三套法人跟單規則寫成明確條件,丟進同一個回測引擎(2015-01~2026-06,含手續費與證交稅),結果是:單看任何一種法人籌碼,不管順著做還是反著做,都跑輸什麼都不做的 0050;只有把投信買超疊上營收動能之後,才真正勝出。
| 規則 | 年化報酬 | 日夏普 | 最大回撤 | 對 0050 含息 |
|---|---|---|---|---|
| 逆向外資(外資連賣 5 日就買) | +8.8% | 0.48 | -34.5% | 落後 11.8 個百分點 |
| 純投信買超 | +9.7% | 0.44 | -45.5% | 落後 10.9 個百分點 |
| 投信買超+營收動能 | +33.9% | 1.11 | -45.5% | 領先 13.3 個百分點 |
| 0050 含息 buy-and-hold | +20.6% | 1.10 | -34.0% | 基準 |
基準口徑:0050 以
etl:adj_close還原價計算 buy-and-hold(2015-01-05~2026-06-11,總報酬 +750%,約 8.5 倍),不經回測引擎、不含交易成本。策略數字則由 finlabsim()實跑,已內扣手續費 0.1425% 與證交稅 0.3%。回測的觀念與限制可先看回測是什麼。
這篇文章除了三套策略的完整程式碼,還會用兩組個股層級的統計,直接回答搜尋量最高的兩個問題:外資大賣隔天會怎樣(86 萬筆大賣樣本),以及投信一直買、外資一直賣該聽誰的(四象限前瞻報酬)。想先弄懂外資賣超背後的原因,可以搭配外資賣超原因全解析:14 年數據實證一起讀。
逆向外資實測:年化 8.8%,落後 0050 超過 11 個百分點
網路上常見的說法:「外資都在割韭菜,跟著反向操作就能賺錢!」這個假設值得用數據檢驗。
💬 你可以這樣對 AI 說:
請回測「逆向外資」策略:
- 條件:外資連續 5 天賣超
- 流動性:20 日均量大於 300 張
- 買進符合條件的股票,每月換股
顯示程式碼
from finlab import data
from finlab.backtest import sim
# 外陸資每日買賣超股數(不含外資自營商)
外資買賣超 = data.get('institutional_investors_trading_summary:外陸資買賣超股數(不含外資自營商)')
vol = data.get('price:成交股數')
# 條件:外資連續 5 天賣超 + 流動性過濾
外資連續賣 = (外資買賣超 < 0).sustain(5)
vol_filter = vol.average(20) > 300 * 1000
# 逆向操作:外資賣時買
position = 外資連續賣 & vol_filter
report = sim(position.loc['2015':], resample='M', position_limit=0.1, upload=False)
report.to_html('reverse_foreign.html')| 指標 | 逆向外資 | 0050 含息 |
|---|---|---|
| 年化報酬率 | +8.8% | +20.6% |
| 日夏普比率 | 0.48 | 1.10 |
| 最大回撤 | -34.5% | -34.0% |
外資賣出常有正當理由(基本面走弱、資金調度),把「外資賣」一律當買進訊號,等於假設外資每次都看錯。回測給出的答案是:這套規則承受了與大盤相當的回撤,年化報酬卻不到大盤的一半。逆向外資不會讓你賠掉本金,但會讓你付出極高的機會成本。
2026-06 數據刷新說明:本文 2026 年 1 月初版引用的「逆向外資年化 -11.2%、純投信 17.5%」來自更早期的舊回測,與文中公開程式碼在現行資料下的結果不一致。本次刷新改以文中程式碼直接重跑(資料至 2026-06-11),逆向外資為 +8.8%、純投信買超為 +9.7%;主策略前版最大回撤 -45.47% 與本次重跑一致。結論方向不變:單一法人籌碼訊號都大幅落後 0050。
外資一直賣,股價為什麼不跌?
這是很多人看盤時的疑惑:明明外資連續賣超,股價卻紋風不動,甚至還往上漲。核心原因有四個:
- 有人承接:外資賣出的同時,投信、自營商或散戶可能正在買進,承接力道夠,價格就撐得住。
- 賣壓常與基本面無關:外資會因國際資金調度、指數權重調整、匯率避險而調節台股部位,這類賣超跟公司營運好壞沒有關係。
- 占比有限:對成交量大的個股,外資單日賣超可能只占成交量的零頭,撼動不了價格。
- 利空早已反映:若消息已被預期,賣壓在更早之前就消化完,等到帳面看到外資賣超,價格反而落底。
我們用 14 年的全市場資料驗證過這件事:外資連續賣超越久,大盤後續報酬中位數反而越高(連賣 10 日以上,未來 60 日中位數 +8.2%)。完整的統計表、上漲機率與可重現程式碼,見外資賣超原因與大盤後續報酬的 14 年實證。本文接下來補上那篇沒有覆蓋的另一半:個股層級的外資大賣統計。
外資大賣隔天會怎樣?86 萬筆個股大賣樣本的統計
「外資大賣隔天」是 Google 上真實存在的搜尋,但第一頁幾乎沒有人給出數據。我們把 2015 年以來所有日均量 300 張以上的個股交易日(約 275 萬筆)按「外資單日賣超占當日成交量的比例」分組,看隔天、5 天後、20 天後的還原股價報酬:
| 外資單日賣超占成交量 | 樣本數 | 隔天中位數 | 隔天上漲機率 | 5 天後上漲機率 | 20 天後中位數 | 20 天後上漲機率 |
|---|---|---|---|---|---|---|
| 5%~10% | 253,797 | -0.10% | 43.2% | 46.7% | -0.25% | 48.2% |
| 10%~20% | 312,753 | 0.00% | 43.8% | 47.7% | 0.00% | 49.4% |
| 大於 20% | 343,409 | 0.00% | 44.8% | 49.5% | +0.36% | 51.7% |
| 全市場基準 | 2,748,171 | 0.00% | 45.7% | 48.5% | 0.00% | 49.4% |

三個讀法:
- 外資大賣隔天確實偏弱,但弱得很有限:各組隔天上漲機率 43.2%~44.8%,只比全市場基準的 45.7% 低 1~2 個百分點。把「外資大賣」當成隔天必跌的逃命訊號,數據不支持。
- 賣得越重,後續反而越不差:單日賣超超過成交量 20% 的最重一組,20 天後上漲機率 51.7%、中位數 +0.36%,雙雙高於基準(49.4%、0.00%);真正略偏弱的反而是 5%~10% 的溫和持續調節組(20 天後 48.2%、-0.25%)。極端大賣常發生在恐慌殺低階段,之後均值回歸。
- 外資大賣比想像中常見:全部樣本中約 12.5% 的個股交易日,外資單日賣超就超過成交量的 20%;以台積電為例,2015 年以來有約四分之一的交易日達到這個標準。它是日常,不是異常。
如果想把外資籌碼變成可用的風控訊號,與其盯單日大賣,不如用標準化指標:外資買進均價(成本線)的算法見外資買入成本指標選股,把買賣超天數轉成 0~1 避險指標的做法見外資避險指標教學。
投信一直買、外資一直賣,該聽誰的?四象限數據
另一個高頻搜尋情境:投信連續買超、外資同時連續賣超,兩邊對作,散戶夾在中間。我們把每檔個股近 10 日的投信、外資累計買賣超各分正負,組成四個象限,統計未來 20 日與 60 日的還原股價報酬:
| 近 10 日籌碼組合 | 樣本數 | 未來 20 日中位數 | 20 日勝率 | 未來 60 日中位數 |
|---|---|---|---|---|
| 投信買+外資賣 | 288,123 | +0.46% | 52.0% | +1.00% |
| 投信買+外資買 | 284,212 | +0.11% | 50.1% | +0.68% |
| 投信賣+外資買 | 285,592 | +0.34% | 51.3% | +0.91% |
| 投信賣+外資賣 | 314,609 | +0.42% | 51.9% | +0.81% |
| 投信大買(10 日超過 15 張)+外資賣 | 238,398 | +0.53% | 52.4% | +1.13% |
| 全市場基準 | 2,748,171 | 0.00% | 49.4% | +0.16% |

答案站在投信這邊:以中位數和勝率看,「投信買+外資賣」是四個象限裡最好的一格;投信買超門檻拉高後(10 日累計超過 15 張)數字再上升一階。反直覺的是,「投信買+外資買」這種兩邊都看好的組合,中位數反而是四象限最低(+0.11%),原因之一是法人共識高的標的往往已經漲過一段。
兩個必要的提醒:第一,若改用平均值排序,「投信賣+外資買」會變成最高(+1.62%),因為少數大漲樣本拉動了右尾,平均值與中位數給出不同排序,本文以中位數與勝率描述「典型結果」。第二,這些差異每 20 日只有零點幾個百分點,未扣交易成本,是統計傾向而非可以直接下單的訊號。想把傾向變成可交易的策略,要靠下面的複合條件。三大法人屬性的完整比較,見三大法人買賣超比較。
為什麼投信訊號比外資有參考價值
- 專注度:投信專注台股,外資部位分散全球,台股只是資產配置的一環。
- 資訊優勢:投信對中小型股研究更深入,外資研究覆蓋集中在大型權值股。
- 資金性質:外資買賣超大量混入指數調整、匯率避險等與個股基本面無關的流動,雜訊比例高。
- 持股週期:投信持股週期較長,買超代表更堅定的看法。
學術研究也支持本土機構的相對優勢:Choe, Kho & Stulz (2005) 用韓國全市場交易資料發現,外資的買進價格系統性高於本土投資人、賣出價格系統性更低,短線交易處於資訊劣勢;Grinblatt, Titman & Wermers (1995) 則發現共同基金普遍採取動能交易,基金買超的持股後續表現較佳。前者解釋了為什麼照抄外資進出討不到便宜,後者解釋了投信買超為什麼帶有資訊。但帶有資訊,距離贏過大盤還很遠,下一節用回測說明。
純投信買超實測:年化 9.7%,還是輸 0050
請回測「投信買超」策略:
- 條件:投信 10 日累計買超超過 15 張
- 流動性:20 日均量大於 300 張
- 選投信買超最多的前 10 檔,每月換股
顯示程式碼
from finlab import data
from finlab.backtest import sim
投信買賣超 = data.get('institutional_investors_trading_summary:投信買賣超股數')
vol = data.get('price:成交股數')
# 投信 10 日累計買超
trust_sum = 投信買賣超.rolling(10).sum()
trust_buy = trust_sum > 15000
# 流動性篩選後,選買超最多的前 10 檔
vol_filter = vol.average(20) > 300 * 1000
cond = trust_buy & vol_filter
position = trust_sum[cond].is_largest(10)
report = sim(position.loc['2015':], resample='M', upload=False)
report.to_html('trust_buy.html')純投信買超年化 +9.7%、日夏普 0.44,最大回撤 -45.5%:報酬比逆向外資略高,但回撤深了 11 個百分點,風險調整後反而更差,而且同樣遠輸 0050。問題出在單純的籌碼訊號買到太多沒有基本面支撐的股票:有些投信買超的標的營收正在下滑,有些只是短期題材,籌碼退潮就跌回原點。營收成長股裡的地雷比例有多高,可以參考營收陷阱分析。
解法是把「法人認可」與「基本面向上」疊在一起,這正是主策略的設計。
投信買超+營收動能:年化 33.9%、日夏普 1.11
建立「投信買超+營收創新高」策略:
- 投信 10 日累計買超超過 15 張
- 月營收 3 個月平均創 12 個月新高
- 營收年增率大於 20%
- 20 日均量大於 300 張,選投信買超最多的前 10 檔
- 單一持股上限 15%,每月換股
顯示程式碼
from finlab import data
from finlab.backtest import sim
# 載入籌碼、價量與營收資料
投信買賣超 = data.get('institutional_investors_trading_summary:投信買賣超股數')
volume = data.get('price:成交股數')
revenue = data.get('monthly_revenue:當月營收')
rev_growth = data.get('monthly_revenue:去年同月增減(%)')
# 條件一:投信 10 日累計買超
trust_sum = 投信買賣超.rolling(10).sum()
trust_buy = trust_sum > 15000
# 條件二:營收 3 個月平均創 12 個月新高
rev_ma = revenue.average(3)
rev_high = rev_ma == rev_ma.rolling(12).max()
# 條件三:營收年增率大於 20%
rev_strong = rev_growth > 20
# 條件四:流動性
liquidity = volume.average(20) > 300 * 1000
# 組合條件,選投信買超最多的前 10 檔
cond = trust_buy & rev_high & rev_strong & liquidity
position = trust_sum[cond].is_largest(10)
# 對齊月營收公布日,避免用到未來資料
position = position.reindex(revenue.index_str_to_date().index, method='ffill')
report = sim(position.loc['2015':], resample='M', position_limit=0.15, upload=False)
report.to_html('optimized_report.html')
2015 年初投入的 1 元,到 2026 年 6 月變成 25.9 元;同期 0050 含息是 8.5 元。完整指標:
| 指標 | 投信+營收動能 | 0050 含息 |
|---|---|---|
| 年化報酬率 | +33.9% | +20.6% |
| 日夏普比率 | 1.11 | 1.10 |
| 月索提諾比率 | 2.36 | — |
| 最大回撤 | -45.5% | -34.0% |
| 交易筆數勝率 | 52.7%(1,317 筆) | — |
| 最差年度 | -41.5% | — |
注意兩件事:日夏普 1.11 只比 0050 的 1.10 高一點,代表超額報酬大部分是用更高的波動換來的,本策略真正過風險門檻靠的是月索提諾 2.36(剔除上行波動後的口徑);其次,-45.5% 的最大回撤與 -41.5% 的最差年度意味著資產可能腰斬,這不是每個人都承受得了的路徑。
策略演進總表
| 策略 | 年化報酬 | 日夏普 | 最大回撤 | 對 0050 |
|---|---|---|---|---|
| 逆向外資(外資賣時買) | +8.8% | 0.48 | -34.5% | 輸 |
| 純投信買超 | +9.7% | 0.44 | -45.5% | 輸 |
| 投信+營收年增大於 10% | +30.6% | 1.04 | -43.3% | 贏 |
| 投信+營收年增大於 20% | +33.9% | 1.11 | -45.5% | 贏 |
| 0050 含息 buy-and-hold | +20.6% | 1.10 | -34.0% | 基準 |
四個條件各自的角色:投信買超提供法人認可,營收創 12 個月新高確認基本面突破,年增率大於 20% 篩出高成長,300 張均量保障實單買得到。營收動能單獨拿出來也是有效因子,做法見營收創新高策略;偏好穩健現金流路線的,可以對照三項現金流策略。
參數敏感度與分段檢驗:結論不靠單一參數
漂亮的回測最常見的死法是過擬合。我們把兩個關鍵參數各自上下調整重跑:
| 變體 | 年化報酬 | 日夏普 | 最大回撤 |
|---|---|---|---|
| 營收年增大於 10%(持股 10 檔) | +30.6% | 1.04 | -43.3% |
| 營收年增大於 20%(本文設定) | +33.9% | 1.11 | -45.5% |
| 營收年增大於 30%(持股 10 檔) | +28.6% | 0.96 | -46.7% |
| 持股 5 檔(年增大於 20%) | +25.9% | 1.01 | -42.3% |
| 持股 10 檔(本文設定) | +33.9% | 1.11 | -45.5% |
| 持股 20 檔(年增大於 20%) | +30.8% | 1.08 | -45.4% |

六組變體年化落在 +25.9%~+33.9%,全部高於 0050 的 +20.6%:結論對參數不敏感,本文設定(年增 20%、持股 10 檔)剛好是其中最好的一組,讀者應以區間而非單點理解期望值。分段看,策略在四個子期間的年化分別為:2015~2017 +15.7%、2018~2020 +33.8%、2021~2023 +32.5%、2024~2026/06 +59.4%,沒有單靠某一段多頭撐起全期數字,但 2024 年後的數字明顯受惠於這波行情,不宜外推。
發佈之後的前瞻表現:策略 +39.8%,同期 0050 +45.0%
本文初版發佈於 2026-01-07,到 2026-06-11 為止,策略在發佈後的真實前瞻區間累積 +39.8%,同期 0050 含息 +45.0%:這 5 個月策略跑輸大盤 5.2 個百分點。在指數單邊急漲的行情裡,選股策略常暫時落後,5 個月也遠不足以下結論,但贏輸都寫出來,後續每季刷新會持續累計這個數字。
回測方法與限制
| 項目 | 本文口徑 |
|---|---|
| 交易成本 | sim() 預設已內扣手續費 0.1425% 與賣出證交稅 0.3% |
| 滑價 | 未另設滑價假設;實際衝擊取決於資金規模,本文未估算策略容量 |
| 股票池 | 全上市櫃普通股,含 ETF 與金融股在內未額外排除;下市股票由 finlab 資料庫保留歷史價格,降低生存者偏誤 |
| 流動性過濾 | 20 日均量大於 300 張 |
| 前視偏差 | 部位以 reindex 對齊月營收公布日;籌碼資料為每日盤後公開資訊 |
| 權重 | 等權,單檔上限 15%(純投信與逆向外資為 10%) |
| 周轉率 | 月再平衡、平均持有 30.4 天,組合接近每月全數換血,屬高周轉策略 |
| 樣本內外 | 主數字為 2015-01~2026-06 全段樣本內;2026-01 發佈後的前瞻區間績效已於上節揭露 |
| 風險門檻 | 月索提諾 2.36、近 3 年日夏普 1.53,高於發佈門檻 1.5 |
名詞解釋
| 指標 | 中文 | 說明 | 參考讀法 |
|---|---|---|---|
| CAGR | 年化報酬率 | 考慮複利的平均年報酬 | 須與基準同區間比較 |
| Sharpe Ratio | 夏普比率 | 每承擔一單位波動換到的超額報酬 | 大於 1 通常算不錯 |
| Sortino Ratio | 索提諾比率 | 只計下跌波動的風險調整報酬 | 成長股策略常明顯高於夏普 |
| MDD | 最大回撤 | 從高點到低點的最大跌幅 | 超過 -40% 要審慎評估承受度 |
更多名詞定義見量化名詞詞彙表;夏普比率的完整解讀與互動式計算器,見夏普比率指南。
延伸閱讀
- 外資賣超原因全解析:外資一直賣、股價為什麼不跌:大盤層級的 14 年統計,與本文的個股統計互補
- 散戶反向指標策略:法人之外,散戶籌碼的另一面
- 大盤融資維持率與 0050 擇時:搭配槓桿情緒指標控管整體曝險
- 如何選股:台股選股方法總覽:把籌碼面放回完整選股框架
- 什麼是量化交易:完整指南:從零開始理解回測與策略開發
常見問題(FAQ)
外資大賣隔天股價一定會跌嗎?
不一定。86 萬筆個股大賣樣本顯示,外資大賣隔天的上漲機率為 43.2%~44.8%,只比平日基準的 45.7% 低 1~2 個百分點;其中賣超占成交量 20% 以上的最重一組,20 天後上漲機率 51.7%,反而高於基準。隔天小幅偏弱是事實,必跌是迷思。
外資一直賣,股價為什麼不跌?
因為賣壓被投信、自營商與散戶承接,且外資賣超常出於匯率、指數調整等與基本面無關的原因。大盤層級的統計顯示,外資連賣越久、後續報酬中位數反而越高,完整數據見外資賣超原因全解析。
投信一直買、外資一直賣,該聽誰的?
數據站投信這邊:「投信買+外資賣」的個股未來 20 日報酬中位數 +0.46%、勝率 52.0%,是四象限中最好的一格。但效果量很小且未扣成本,建議當成研究線索而非進出依據。
外資賣超的原因是什麼?
多數是全球資金調節:美元與利差環境、國際指數權重調整、海外基金贖回、漲多再平衡,與個別公司基本面無關。逐項拆解與數據驗證見外資賣超原因的 14 年實證。
逆向外資(外資賣就買)為什麼行不通?
外資賣出有時是真的看壞基本面,反向買進等於假設外資永遠看錯。回測結果是年化 +8.8%、日夏普 0.48,承受與大盤相當的回撤,報酬卻不到大盤一半,機會成本極高。
投信買超和外資買超,哪一個比較準?
以台股中小型股而言,投信較有參考價值:投信專注台股、研究更深、持股週期較長,學術上本土機構對外資也有交易層面的資訊優勢。但本文回測顯示,純投信買超年化 +9.7% 仍輸 0050,籌碼訊號必須搭配基本面條件才有勝出機會。
這套投信+營收策略現在還有效嗎?
2026-01 發佈後的前瞻區間(至 2026-06-11)策略 +39.8%、同期 0050 +45.0%,暫時落後 5.2 個百分點;全段回測(2015 起)年化 +33.9%。我們每季用最新資料重跑並更新本文,贏輸都會如實寫出。
我要怎麼自己重跑這些回測?
安裝 finlab 套件(pip install finlab)後,把本文任一段程式碼貼給 AI 或直接執行即可;第一次使用會自動引導登入。文末附完整的 strategy.py 與統計數據 CSV,改參數重跑就能驗證所有數字。
風險提示
本策略回測期間(2015-01~2026-06)年化 +33.9%,但請注意:
- 最大回撤 -45.5%、最差年度 -41.5%:資產可能接近腰斬,請先確認自己承受得了這個路徑
- 集中持股:僅持有 10 檔,個股風險集中
- 高周轉:平均持有約一個月,實單執行的滑價與流動性衝擊未納入估算
- 樣本內結果:主數字為全段樣本內回測,前瞻區間目前仍短
- 過去不代表未來:市場結構改變可能使策略失效
投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。
最後更新:2026-06|回測區間:2015-01~2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)
還有更多
登入以閱讀完整內容
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始