此文章為VIP限定
一、復刻0056高股息ETF的核心邏輯
市面上最受投資人青睞的高股息 ETF,莫過於 元大高股息 ETF(0056)。它是許多台灣投資人「存股領股利」的代表標的。0056 的選股方法,是從臺灣50指數與臺灣中型100指數為母體,優先篩選出具備相對高殖利率(預期下一年股息)之公司,最終組成 50 檔成分股。
然而,許多人只知道它「給股利」、風險似乎不高,卻很少真正挖掘其選股邏輯背後的細節和可能的缺陷。為了讓大家更深入了解這套機制,我們運用量化交易的方法,去「復刻」0056 的篩選邏輯,並嘗試更進一步的優化。這項研究花了相當多時間精力,從龐大資料的爬取、清洗、到回測比對,都一一經歷反覆測試,只為了呈現給投資人更清晰且更具行動價值的策略思路。
復刻 0056 的關鍵步驟
- 市值排名前 150 名股票作為初始篩選標的這代表先從台灣市值規模較大、較有流動性的公司中著手,排除一些可能成交量低、營運風險較高的股票。
- 近三年皆穩定發放現金股利0056 著重於「股息」,因此公司能否穩定配發現金股息,就顯得至關重要。
- 毛利率持續成長反映公司基本營運體質是否健康;若毛利率維持增長,通常代表公司具備較佳的競爭力。
- 設定交易流通性條件確保標的能有效買賣,避免「有好策略,卻掛不到單」的尷尬情況。
- 最終根據現金股利殖利率和現金股息年化報酬,選出前 50 檔股票這基本就複製了 0056 的核心精神:高殖利率作為重要排序依據。
在經過一連串比對後,復刻而得的策略股池與原版 0056 股池有 72% 的重疊率,報酬率曲線也高度相關。這意味著,我們的 復刻版 0056 確實能有效重現 0056 的選股結果。
相關性分析:

二、為什麼要優化 0056?
雖然 0056 深受大眾喜愛,但其單一依賴「殖利率」的選股標準,也帶來了不少潛在問題。最常見的疑問在於:如果公司未來的獲利或股價下滑,殖利率再高也未必保得住報酬。 因此,僅看現金股利殖利率,有時候會忽略公司實際的成長動能與股價穩定度。
- 缺乏成長潛力考量: 0056 更重視「現在」的高股息,卻無法保證公司未來能維持同等配息水準。
- 忽略股價風險: 有些殖利率高的公司,股價可能因營運不佳或大環境衝擊而下跌,使投資人因價差損失抵銷了領股息的好處。
事實上,根據許多長期回測的結果,0056 的投資績效常落後大盤。
復刻 0056 報酬:

長期持有 0056 報酬:

這也是為什麼我們要繼續進行第二階段的策略優化,希望既能拿到股利,也能兼顧成長與風險控管。
三、策略的優化方向
為了進一步提升報酬並減少下跌風險,我們引入了更全面的選股因子與風險控管條件,包括:
- 營收成長指標
- 為什麼重要? 相較於只看當前股息,營收成長能更直接反映公司未來的成長動能。假如一家公司營收年年進步,往後維持股息或提高配息的機率也相對提高。
- 長期均線條件
- 為什麼重要? 均線是一種技術分析常用的趨勢判定法。挑選「股價在長期均線之上」的公司,能有效排除股價長期走弱或進入空頭趨勢的標的。
- 股價波動率限制
- 為什麼重要? 高波動可能意味著市場對公司基本面有疑慮,或財務體質波動度較大。過高的波動率會拉大投資組合的風險,限制波動度有助於穩定心態與獲利表現。
- 殖利率門檻
- 為什麼重要? 雖然不能只看殖利率,但也不應該放棄。透過設置「殖利率至少在前 40%(或 60 百分位數以上)」的條件,既能保有高股息優勢,又不至於過度犧牲穩定度與成長性。
這些篩選條件的核心邏輯,就在於想同時享受「股利」與「成長」。最終,我們挑出能在長期維持向上趨勢、營運持續成長、且具有一定股利保證的股票,打造一個較能兼顧「領息」與「資本利得」的投資組合。
四、優化後的策略範例
以下程式碼範例,示範如何在量化平台上落實上述篩選邏輯。除了維持原先 0056「市值前 150 名」、「三年皆有發放股利」等規範,我們另外納入了營收成長、長期均線、波動度及殖利率門檻等條件。最後再綜合每檔股票的排名結果,只選擇前 20 檔表現優異的公司。
base_stocks = 市值.is_largest(150)
yield_ratio = data.get('price_earning_ratio:殖利率(%)')
殖利率條件 = (yield_ratio >= yield_ratio.quantile(0.6, axis=1))
去年同月增減 = data.get("monthly_revenue:去年同月增減(%)")
rev = data.get('monthly_revenue:當月營收')
營收成長 = (rev.average(3) > rev.average(12))
均線條件 = (close>close.average(120)) & (close>close.average(240))
std = close.pct_change().rolling(60).std().rank(axis=1, pct=True)
波動條件 = (std < 0.5)
conds = (
(close>0)
& base_stocks
& vol_cond
& eps_cond
& 近三年皆有發放現金股利
& 毛利成長率優良
& 營收成長
& 均線條件
& 波動條件
& 殖利率條件
)
position = (cash_dividend_annual.rank(axis=1, pct=True) + 現金股利殖利率.rank(axis=1, pct=True) + 去年同月增減.rank(axis=1, pct=True))[conds].is_largest(20)
dates = []
y_start = position.index[0].year
y_end = position.index[-1].year
for y in range(y_start, y_end+1):
dates.append(f"{y}-05-31")
dates.append(f"{y}-12-27")
resample = pd.to_datetime(dates)
report2 = sim(position.reindex(resample, method='ffill'), resample=resample, upload=False)
report2.display()
以上範例,用來呈現大致邏輯。重點在於「為什麼要加入這些條件」,而不只是條件本身。唯有理解每一步驟背後的意義,才能在投資時有所依據,也更能說服自己這樣嘗試,也歡迎大家優化加入更多因子或是優化相關的參數。
五、因子IC/IR分析
在量化投資的領域,經常會透過「Information Coefficient 資訊係數」來確認某個因子是否確實能帶來正向貢獻。以下名詞簡單解釋:
- IC(Information Coefficient,訊息係數): 量度某因子的預測能力,IC > 0 代表該因子對未來報酬有正向預測力。
- IR(Information Ratio,訊息比率): 代表因子收益與風險的平衡程度,IR > 1 通常表示該因子效果不錯。
更詳細的內容歡迎參考之前的文章,Information Coefficient 是什麼,要如何使用?
經分析顯示,營收成長、現金股息年化報酬、殖利率條件等因子都對整體績效貢獻較大,尤其是營收成長與長期均線兩因子的 IC/IR 表現最亮眼。這進一步佐證了「高息 + 成長 + 走勢向上」的組合,更能帶來勝率與報酬的提升。
因子 IC / IR 分析:

六、終極版策略的績效分析
把所有優化條件整合後,使用強大的 finlab.optimize
「文檔連結」可以更方便的進行條件排列組合與大規模回測,最終得到「終極版」的選股策略。其結果遠遠優於單純追求殖利率的 0056,以下為量化回測的關鍵指標:
- 年化報酬率: 提高至約 31%,相較於原版 0056 明顯領先。
- 最大回撤: 降至 24.3%,顯示波動與下跌風險獲得更佳控管。
- 夏普比率: 超過 2 以上,代表收益相對於風險具高度吸引力。
除了高報酬率,更難能可貴的是兼顧到風險面與投資體驗:投資組合的走勢相對平穩,不必日日擔心股價大幅震盪。如此一來,投資人就能同時享有領股利的安心感,又能捕捉股價成長的爆發力。
獲利能力分析:

抗風險能力分析:

風險報酬分析:

勝率期望值分析:

七、結語與投資行動建議
從最初單純「復刻 0056 高股息」的思路,到後來發現 0056 可能有所不足,再進一步優化篩選條件並不斷迭代測試。正是因為投入了大量的程式回測、因子分析,才有這次所呈現的量化成果。
對於想靠股息過日子,或喜歡「領息 + 穩定增值」的投資人而言,本文提供了另一個思考角度:
- 高殖利率當然好,但若同時輔以「營收成長」、「股價走勢」以及「風險控管」等條件,也許能得到更好的投資體驗與回報。
- 0056 作為大眾入門選擇並無不可,但若你願意花些心思了解量化策略,自己動手選股或透過更進階的工具優化組合,或許就能在領股期的同時「多賺一點,少跌一點」,甚至大大超越原始 ETF 的表現。
最後,若對量化選股或因子策略有更多好奇心,不妨實際嘗試應用文中提到的篩選方式,或直接透過量化平台進行回測調整,也歡迎參考 Colab範例檔 。祝大家研究和投資順利、盈收長紅!