每天看外資買賣超卻不知道怎麼解讀嗎?外資避險指標大公開,讓你提前避開股市大幅回落

近期台股回落調整,外資持續賣出台股。究竟外資是何方神聖,為什麼能夠控制整個市場?交易所每天盤後都會公佈外資買賣超數量,為什麼那麼多人在關注?又要怎麼解讀?本篇就帶大家來了解外資信息,善用外資買賣超提前避開股市大幅回落!

為什麼外資買賣超這麼重要?

根據金融監督管理委員會數據,2023年底外資及陸資持有股票市值占總市值比例達38.47%。根據證交所數據統計(2024/04/30),台股市值最大的半導體產業,外資及陸資持股比例則達43.89%,其中權值最大的台積電(2330),外資及陸資持股比例則達74.42%。外資是台股市場中的最大法人,像台股這樣的淺碟型市場,外資的一舉一動都會牽一髮而動全身。這也就是為什麼投資人會非常關注外資買賣超了。

FinLab 財經實驗室
FinLab 財經實驗室

外資買賣超

事實上,單純看外資每日的買賣超數據,是雜訊非常多的指標,很難拿來使用。

sep

from finlab import data, login

login(“FINLAB_TOKEN”)

institue_net_buy = data.get(

“institutional_investors_trading_all_market_summary:買賣超”

)

institue_net_buy[“上市外資及陸資(不含外資自營商)”].plot()

sep
FinLab 財經實驗室

接著,我們將數據轉換成近1個月累積淨買超金額,如下圖所示,雜訊減少不少,當外資近一個月出現賣超時,台股也顯著下跌。但仍有個問題,買賣超金額並非標準化數據,沒有上下界,換句話說,買賣超金額會隨著市場成交量增減而有所不同,未必能真的反應趨勢。

sep

import matplotlib.pyplot as plt

from finlab import data, login

login(“FINLAB_TOKEN”)

institue_net_buy = data.get(

“institutional_investors_trading_all_market_summary:買賣超”

)

fig, ax = plt.subplots(nrows=2, ncols=1, sharex=True)

close[“0050”][“2009”:].plot(ax=ax[0])

ax[0].legend([“0050”])

institue_net_buy[“上市外資及陸資(不含外資自營商)”][“2009”:].rolling(window=20).sum().plot(

ax=ax[1]

)

ax[1].legend([“foreign net buy”])

sep
FinLab

外資淨買超天數佔比

如果買賣超金額無法反應趨勢,那若我們將數據轉換成淨買超天數呢?

指標 = 近月外資淨買超天數 / 近月交易日數

指標介於 0 ~ 1,如下圖所示,當指標大於(小於)0.5即表示,近一個月外資有一半以上的交易日都是買超(賣超)股票。指標標準化除了能不受成交量影響外,還能直接以數值判斷市場的趨勢。當指標數值非常高,例如指標=0.7,我們能一眼看出外資連續買超多日,市場正處於多頭。

sep

fig, ax = plt.subplots(nrows=2, ncols=1, sharex=True)

close[“0050”][“2009”:].plot(ax=ax[0])

ax[0].legend([“0050”])

(institue_net_buy[“上市外資及陸資(不含外資自營商)”][“2009”:] > 0).rolling(

window=20

).mean().plot(ax=ax[1])

ax[1].legend([“foreign net buy”])

sep
FinLab

市場回檔情境

觀察過去幾次0050有大幅回落的情境,於下跌期間,外資淨買超天數佔比多小於0.5,也就是外資處於連續賣超的狀態。

FinLab

回測

根據市場回檔的分析,我們將回測條件設定如下

  1. 近2個月外資淨買超天數佔比 < 0.4
  2. 0050收盤價斜率(10日) < 0

一般情況持有0050,當符合上述條件,則將股票賣出,回測結果如下

FinLab

可以看到最大回檔減少至20%,尤其投組在2020/03疫情及2022聯準會快速升息情境下,表現十分優秀。然而肯定有讀者懷疑,為什麼2020以前的避險效果似乎不明顯,雖然最大會撤有些微減少,但績效和不避險差不多。

我們將持有股票改成富櫃50(006201),再回測試試。如下圖所示,避險效果非常顯著,也就是說外資連續賣超台股的時候,中小型股票會有顯著的回落。

FinLab

結論

  1. 外資淨買超天數佔比是標準化的數據,介於0與1之間,能夠更精確的反應市場趨勢。
  2. 在市場有大幅回檔時,外資淨買超天數佔比多半小於0.5。
  3. 使用外資淨買超天數佔比作為避險指標能夠有效避開市場大幅回落。
  4. 使用外資淨買超天數佔比作為避險指標,在中小型股票更為有效。

透過以上介紹,相信讀者更了解外資買賣超該怎麼解讀了吧!透過數據轉換,就能將看似平凡無奇的數據變成強而有力的避險指標。市場就是充滿了不確定性,許多神奇的數據等著大家去挖掘!

用程式自動下單

FinLab 提供永豐金 Python API,下單非常簡單,只要短短幾行,程式就會幫你計算現在應該有的部位,並且進行「買賣」只需要在適當的時間(例如開盤、收盤)執行,程式就會自動下單買進賣出,將你的帳戶部位調整成獲利的形狀!再也不用自己計算每檔股票要買幾張了!非常的方便喔!

sep

import os

from finlab.online.sinopac_account import SinopacAccount

from finlab.online.order_executor import OrderExecutor, Position

# 設定帳號金鑰

os.environ[‘SHIOAJI_API_KEY’] = ‘永豐證券API_KEY’

os.environ[‘SHIOAJI_SECRET_KEY’] = ‘永豐證券SECRET_KEY’

os.environ[‘SHIOAJI_CERT_PERSON_ID’]= ‘身份證字號’

os.environ[‘SHIOAJI_CERT_PATH’]= ‘永豐證券憑證路徑’

os.environ[‘SHIOAJI_CERT_PASSWORD’] = ‘永豐證券憑證密碼’ # 預設與身份證字號

# 以 100 萬台幣計算當前帳戶應該有的股票

fund = 1000000

target_position = Position.from_report(report, fund)

# 進行下單

acc = SinopacAccount()

order_executor = OrderExecutor(target_position, acc)

order_executor.create_orders()

sep

程式預設使用當前價格進行「限價單」但你也可以透過客製化的方式,調整成「漲跌停」、「零股」、「融資券」,非常的簡單方便,讓你在股市中複製好策略的績效!

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!