跳至主要內容
台股研究 約 8 分鐘閱讀

Smart ETF 00905 2.0:12 個獲利因子程式碼懶人包與多因子回測全解析

用 finlab 套件重建 Smart ETF 00905 公開說明書中的 12 個價值、品質、動能因子,切分訓練集與 2020 年 8 月之後的測試集驗證效度。多因子組合在測試集不計成本年化 24%、MDD 顯著小於大盤;扣掉交易成本重跑到 2026 年 10 月,三項穩健性驗證都沒過。益本比與股價動能單因子表現最強,附完整 Python 程式碼。

免安裝,用 AI 重跑這篇的策略

在瀏覽器開啟 FinLab Studio,AI 依本文的條件重跑回測,接著可以改條件再測。

在 Studio 重跑
用 finlab 重建 Smart ETF 00905 的 12 個獲利因子,逐一拆解價值、品質、動能因子,並透過訓練集與測試集驗證效度。 CAGR 23.4% Sharpe 1.23

前情提要

在上一篇文章中我們解構了Smart ETF 00905的公開說明書,從一百多頁中提取出特選Smart多因子指數的編纂方式,並與加權指數做對比,發現兩種指數走勢幾乎完全貼合。

特選Smart多因子與加權指數報酬比較圖

依本文重跑

執行這個策略

複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。

告訴你的AI:

幫我設定 FinLab,重現這篇文章,請讀:https://finlab.finance/setup?relatedUrl=/blog/smart-etf-00905-multi-factor-backtest

免安裝,開啟 FinLab Studio

簡介

這次會使用finlab套件模擬出所有的Smart多因子,並考量發行機構與個體投資人的差別進行微調後,重新進行回測,目的是驗證特選Smart多因子是否有其意義,能否獲得超越大盤的報酬率。

三項穩健性驗證:重跑到 2026 年 10 月

這裡驗證本文的 Smart 多因子策略:上市股票的多因子權重係數高於 75 分位數者依係數加權,權重每天變動就調整,從指數發布的 2020-08-10 起算。文中只附了價值因子的程式,品質(股東權益報酬率、收益變動率、現金流量對資產比、資產報酬率、毛利對資產比、槓桿度)與動能(股價動能、盈利動能)因子照 00905 公開說明書的指數編製規則補齊;原文程式把金融股與非金融股兩條價值因子公式的標註寫反了,這裡照文字。照原文不計成本、資料截到 2023-01-04 重跑,測試集年化 23.0%、最大回撤 -20.6%,和原文的 24% 接近;扣掉 sim() 預設成本是年化 17.1%。接著在 2026-10-30 用本文附的 validation/strategy.py(finlab 2.2.24,資料截至 2026-10-29)不截斷結束日重跑,再做三項檢查。三項檢查的「贏」都是同一個意思:日夏普高於同一段期間的 0050 含息買進持有(etl:adj_close 還原價直接計算報酬、不扣成本)。兩邊的日夏普用同一個公式:日報酬平均除以標準差、乘上 √252,不扣無風險利率。三項都用 sim() 預設的手續費 0.1425% 與證交稅 0.3%。

檢查 標準 結果
鄰近參數 入選分位數(0.7、0.75、0.8)乘上股價動能長天期(月)(9、12、15),9 組至少 7 組贏 1/9 組贏,不過
前後兩段 2020-08-10 到 2023-09-19、2023-09-20 到 2026-10-29 兩段都贏 前段 1.30 對 0.58,後段 1.17 對 1.83,不過
交易成本 原參數、sim() 預設成本 日夏普 1.23 對 1.28,不過

Smart 多因子鄰近參數 9 組日夏普熱圖:1 組高於同期 0050 含息,原參數日夏普 1.23

9 組參數的日夏普(括號內是年化報酬,粗體是原文參數):

股價動能長天期(月) \ 入選分位數 0.7 0.75 0.8
15 1.19(年化 22.2%) 1.16(年化 21.9%) 1.16(年化 22.3%)
12 1.22(年化 22.8%) 1.23(年化 23.4%) 1.22(年化 24.0%)
9 1.26(年化 23.7%) 1.28(年化 24.5%) 1.27(年化 24.8%)

前後兩段與全期:

期間 策略年化 策略日夏普 0050 含息年化 0050 日夏普
前段 2020-08-10 到 2023-09-19 24.2% 1.30 9.1% 0.58
後段 2023-09-20 到 2026-10-29 22.8% 1.17 52.1% 1.83
全期 2020-08-10 到 2026-10-29 23.4% 1.23 28.7% 1.28

交易成本對照(原參數):

成本設定 年化 日夏普 最大回撤
不扣成本 29.3% 1.48 -26.1%
sim() 預設:手續費 0.1425%、證交稅 0.3% 23.4% 1.23 -27.3%
0050 含息買進持有(同期) 28.7% 1.28 -34.0%

三項都沒過。2020-08-10 到 2026-10-29,年化 23.4%、日夏普 1.23、最大回撤 -27.3%,同期 0050 含息年化 28.7%、日夏普 1.28、最大回撤 -34.0%。9 組的日夏普在 1.16 到 1.28 之間,只有 1 組勉強高於 0050;前段(2020 年 8 月到 2023 年 9 月)日夏普 1.30 對 0050 的 0.58,後段(2023 年 9 月以後)1.17 對 1.83,前段贏、後段輸。不扣成本時日夏普 1.48、高於 0050,但權重每天跟著股價變動,天天調整部位的手續費與證交稅把年化從 29.3% 壓到 23.4%。下一篇 Part 3 的優化版用同一份因子資料,結論相同。

VIP 區域接著拆解 00905 的選股步驟與程式實作:去掉流動性限制的 Smart 多因子,在測試集(2020-08 起、不計成本)回測年化約 24%,並附單因子回測。

VIP 區域包含策略細節

登入後可看策略優化、完整程式碼與互動式回測報告

FinLab AI

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始

更多多因子選股研究

查看全部