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

資產配置實戰:年報酬 40%、回撤 -13.75% 的策略組合方法

把 13 支 FinLab 選股策略視為資產,用 Hierarchical Clustering 與 Random Search 找最佳權重,打造 CAGR 40%、最大回撤僅 -13.75% 的穩健投資組合。完整實作腳本公開,示範如何用相關性與效率前緣降低同漲同跌風險。

把多支選股策略當成資產來配置,犧牲一點報酬換取大幅降低的波動與回檔,打造年報酬 40%、MDD 僅 -13.75% 的投資組合。 CAGR 40.0%

為什麼要做資產配置?

許多觀眾詢問的問題

許多觀眾詢問,他們遇到以下問題,希望能獲得我們的建議:

  1. 雖然有買不同的標的、甚至還買了美股,但大盤不好的時候還是全部一起下跌。當崩盤時,對於平時沒有太多時間鑽研股票的觀眾來說,雖然心裡明白下跌是暫時的,但還是會忍不住慌張,導致無法全心投入在本業上,也很難繼續紀律執行自己的買賣策略,甚至會恐慌性的全部賣出。想請問有沒有辦法,能夠降低這個最大回檔的幅度,到一個自己能接受的範圍、卻還是能獲得報酬率?
  2. 手上同時看好幾支股票想要長期持有、或是想要同時運行好幾支選股策略,但往往不知道該在哪支股票/策略上分配更多的資金,最後往往採用平均分配的方式,但總覺得有更好的、客觀的方式來決定這個資金比重。

介紹什麼是資產配置、怎麼靠資產配置解決上述問題

  • 同漲同跌是因為股票之間存在”相關性”,完全一樣的話相關性就是1、完全相反相關性則為-1。正是因為資產間的相關性有高低正負之分,所以我們可以利用資產配置的技巧,讓不同的資產彼此間的波動被抵銷掉一部分,達到降低波動率、減少下跌幅度的效果。
    • 舉一個極端的例子,假設兩支股票年報酬都是20%、但高度負相關,採取50/50的配置後,以圖說明平均報酬率不變,但是波動下降非常多。
  • 資產配置就是將上述例子做更嚴謹的假設、推導,透過計算資產間的相關性、並透過一定的公式去分配各種資產的資金,藉由犧牲少部分的報酬來降低不確定性風險(波動度、最大下跌幅度)。這支影片會先帶大家認識最具開創性、獲得諾貝爾獎的資產配置方法 – 效率前緣,並實作進一步改進的現代資產配置模型 – Hierarchical Clustering Models。
    • 若想更深入瞭解資產配置,可以閱讀市場先生的這篇文章

資產配置成果總覽:先看關鍵數字

指標 Final Portfolio(13 支策略配置)
平均年報酬 約 40%
最大回撤(MDD) -13.75%
最大單月虧損 -8%
年度勝率 回測期間每年皆為正報酬(含 2022 空頭年)
再平衡頻率 每 20 個交易日
依本文重跑

執行這個策略

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

告訴你的AI:

把多支 FinLab 選股策略視為資產,用階層分群模型做資產配置並回測,請讀:https://finlab.finance/setup?relatedUrl=/blog/asset-allocation-40-percent-portfolio

免安裝,開啟 FinLab Studio

Final Portfolio 累積報酬曲線,平均年報酬約 40%

後文會一步步走完這個結果的產生過程:先分析 13 支策略的報酬、波動與相關性,再用效率前緣與階層分群模型(Hierarchical Clustering)決定資金權重,最後用 Random Search 挑出穩健的參數組合。

分析即將使用的 FinLab 策略

將選股策略視為資產

  • 每個資產有自己的預期報酬率、波動度,資產與資產之間可以計算相關性;同樣地每個選股策略也有各自的預期報酬率、波動度,選股策略間一樣可以計算相關性。因此我們可以將不同的選股策略視為不同的資產,透過資產配置分配要給每個策略的資金比重。

介紹FinLab的策略

  • 使用了13個FinLab策略當作是不同的資產,大家可以到官網的策略頁面查看每支策略背後的開發邏輯是什麼。
  • 可以發現不同的策略都是在不同的邏輯下設計的,有的看月營收、有的追突破、看現金流、看負債、看本益比等等。因此呈現出來的策略特性也不盡相同。

分析FinLab策略

針對波動度&報酬作圖

FinLab 策略波動度與報酬散佈圖,紅線為回歸直線,點顏色代表夏普比率

x軸是波動度、y軸是平均報酬,紅線則是回歸直線,代表大部分的策略都分布在這條線附近。

紅線可以觀察到: 隨著風險的上升,報酬也會逐漸升高。

每一單位風險(波動度),所能得到的報酬就是夏普比例(sharpe ratio)。夏普比例較高,也就是報酬跟風險的交換比較有CP值(每一單位風險,能換到更多報酬),圖中點的顏色就代表夏普比率。

有了這張圖之後,就可以根據夏普比例,跟自己的風險偏好(波動度)去選擇適合自己的策略。譬如喜歡低風險的,就挑左下角的,喜歡刺激、發大財的,就可以往右上角去做選擇。

針對MDD&報酬作圖

FinLab 策略最大回檔 MDD 與報酬散佈圖

相關性分析

FinLab 各選股策略之間的相關性熱力圖

  • 針對策略相關性作圖
    • 前面是對每一支策略作單獨的分析,現在我們來分析策略之間的相關性。
    • 策略背後的選股邏輯不同,相關性就低。我們可以藉由這張圖片去選擇彼此相關性比較低的策略同時持有,來減少同漲同跌的狀況發生。
      • 舉藏獒跟藏獒外掛大盤指針為例子,因為藏獒外掛大盤指針是藏獒修改而成,因此兩者的相關性很高(可以對比藏獒與其它策略的低相關性),如果只持有兩支策略,最好就不要同時挑這兩支策略。

FinLab 策略相關性矩陣完整視覺化圖表

介紹效率前緣(Efficient Frontier)

簡介

  • 前面都是透過視覺化的觀察,然後進行人為分析,有沒有更嚴謹、更科學的方式呢?
  • 介紹資產配置的先驅、獲得過諾貝爾獎的效率前緣。效率前緣出自 Markowitz(1952) 的現代投資組合理論,他也因此獲得諾貝爾經濟學獎。假設今天隨機給予資產們不同的資金權重,來組成成千上萬種不同的策略(就是下圖中的每一個點),我們會發現這些隨機的策略被一條隱形的曲線所限制住。這條藍色的曲線就是效率前緣,透過這條曲線我們就可以
    1. 在給定的風險(給定x值),求出藍色線上對應的y座標(預期能獲得的最好報酬),並按照那個點的資產配置權重進行投資。
    2. 我們可以找出最佳收益和風險比的投資組合,也就是圖中的星星,有最高的Sharpe Ratio,也就是先前所說CP值最高的投資組合。

效率前緣示意圖,藍色曲線限制住所有隨機投資組合,星星為最高夏普比率組合

實作

  • 用FinLab Strategy所畫出來的效率前緣

以 FinLab 策略繪製出的效率前緣曲線

  • 理想最佳權重(highest sharpe ratio),也就是上圖中的星星處,但一樣要記得這是根據過去所算出來的效率最優配置,不代表未來這個配置仍然會是最優的。

效率前緣下最高夏普比率的理想最佳資產配置權重

  • 隨著給定的風險水準上升,資產配置權重的變化。當給定的風險越來越高時,資產的多樣性就迅速減少,越來越朝向持股單一化(all in)前進,失去了分散投資、降低風險的本意。

隨著風險水準上升資產配置權重變化的圖表,高風險時多樣性下降

缺點

  • 效率前緣聽起來雖然很夢幻,在當時被譽為「華爾街的第一次革命」、「投資界的大爆炸理論」,但實際上拿來使用會發現有許多待解決的問題。
    1. 效率前緣是基於歷史至今為止的資料(歷史報酬率、波動度)所畫出來的,但過去這樣投資好,無法保證未來會一樣好。市場通常是漲跌互見的,因此按照過去歷史所畫出來的效率前緣去做配置,很可能與未來的實際情況有所不同。
    2. 效率前緣的算法可能過度集中在過去報酬率最好的資產上,可以看到將投資組合移到效率前緣上時,資產的多樣性大幅度減少,這反而失去分散投資的本意。
    3. 很容易過擬合(overfitting):效率前緣透過每一種資產跟其他所有的資產去計算相關性,因此對參數非常敏感。只要上周跟這周的資產價格有些微的改變,藉由效率前緣計算出來的投資組合就可能會大幅度變化,這在實際運用上也非常難以執行。

介紹 Hierarchical Clustering Models

Hierarchical Cluster的精神

  • 階層式資產配置的代表作是 López de Prado(2016) 提出的 Hierarchical Risk Parity:用分群結構取代整張共變異數矩陣的反轉,降低估計誤差對權重的衝擊。
  • 在眾多資產中,有些資產會比較相關。以股票舉例,就可能會分為不同地區的股票如台股、美股,往下又可以區分出不同的類股,如金融股、科技股、生技股等等。資產也是如此。因此我們可以透過多次的分類,先將資產劃分為大大小小的類別。

優點

  • 透過 Hierarchical Cluster 的分群方法,有以下優點:
    1. 降低複雜度(不用再計算每個資產跟所有資產的相關性了,只要計算自己類別裡的就好),提升模型穩定度。
    2. 加上分類後,可以根據不同種類、層級去進行風險的平衡。譬如可以確保同層級間的所承受的風險是相同的,也就是美股跟台股承受同樣的風險,在台股之中金融股、科技股、生技股又都承受一樣的風險……以此類推,藉由這種方式也可以達成更穩定的風險平衡。

實作

  • FinLab策略的Hierarchical Cluster的結果
  • 不同的相關性計算方法,有可能會產生不同的分類結果,在這邊我們使用 pearson 算法做示範
    • 不了解也不用緊張,我們後面會教大家怎麼在不懂各種算法情況下,一樣能分辨出算法的好壞。
    • 下圖我們可以觀察到幾點:
      • 藏獒跟藏獒外掛大盤指針的確非常像
      • 合約負債工、股價淨值比外掛大盤指針的選股邏輯類似,一個挑選營建股在營收尚未認列時的低基期作買入、另一個則是股價淨值低的時候若買入,都是挑好股票在便宜的時候去做買入,因此也被分在同一類。

FinLab 策略以 Hierarchical Cluster 分群後的樹狀圖結果

核心實作用 riskfolio-lib 只要幾行(完整流程在文末 VIP 區域的 Colab 筆記本):

顯示程式碼
import riskfolio as rp
 
# returns:13 支 FinLab 策略的日報酬(DataFrame,一欄一支策略)
port = rp.HCPortfolio(returns=returns)
 
weights = port.optimization(
    model="NCO",             # 階層模型:HRP / HERC / NCO
    codependence="pearson",  # 策略間相關性的衡量方式
    covariance="hist",       # 共變異數估計方法
    obj="Sharpe",            # 最佳化目標:最大化夏普比率
    linkage="ward",          # 階層分群的連結法
    leaf_order=True,
)
print(weights.sort_values("weights", ascending=False))

想自己跑一次,可以先用 FinLab Skill 把資料與回測環境裝好:

參數總覽

  • 完整的 Hierarchical Clustering Models包含各式各樣的參數,像是如何分類的演算法、分類時所採用的相關性的計算方法、該使用哪種模型來平衡風險等等,共有六個重要的參數(model,covariance,linkage,codependence,rm,obj),而每一個參數又有多達數十種的演算法選擇。別說是一般投資人,就算是專業的投資人也很少有人能研究完各種參數,更別說參數之間的排列組合了。 註:對參數有興趣的可以點擊連結查看更細節的資訊。
  • 但別擔心,接下來就會教大家用有效率的方法,在不用瞭解各種參數的情況下,找出適合的參數組合
  • 最直覺的想法,就是窮舉所有的參數組合一個一個測,並找出所有組合中最好的一個。我們稱這種方法為 Grid Search 網格搜索

Grid Search 網格搜索示意圖

  • 缺點:當參數較多時,排列組合的數量會非常大,導致搜索的時間變長花費資源也變大,在比較複雜的實務中很難達成。
  • 以此次實驗為例,6個參數就共有4 x 12 x 14 x 4 x 28 x 8 = 602112種組合要測試,用家裡的電腦可能要跑一年才測的完。
  • 因此我們使用Random Search來解決這個問題,從每一個參數中隨機選出一個參數,最終形成一個參數組合。反覆這個隨機選取的動作,也可以找到非常不錯的參數組合。
  • Random Search 的優點
    1. 可以根據自己能接受的時間長短,來決定隨機形成參數組合的次數。
    2. 相對Grid Search來說,Random Search在同樣次數的參數組合測試下,更有效率,這是因為參數間的重要性往往有高有低。 以下圖為例,x軸是相對重要的參數、y軸則是不太重要的參數,也就是說參數組合的好壞取決於隨機選取的點的x座標,因此我們希望能選出越多x座標不同的點。 Grid Search(網格搜索)的方式,在取樣9次的情況下,只會有三個不同的x座標,然而Random Search則可以取樣到不同的9個x座標點。

Grid Search 與 Random Search 取樣效率比較示意圖

(論文出處: Random Search for Hyper-Parameter Optimization

結果

以下就是我們對這六種參數所形成的參數組合,進行 5000 次 Random Search 的結果,大約耗時 5 天

  • 報酬

5000 次 Random Search 各參數組合的報酬分布結果

  • MDD

5000 次 Random Search 各參數組合的最大回檔 MDD 分布結果

5000 組參數各有優劣,我們依穩定性逐參數判讀後選出最終組合(完整判讀過程與逐參數散佈圖分析在文末 VIP 區域)。以下是選定參數組合的詳細回測結果。

對選定的參數組合進行詳細回測,結果呈現

Cumulative Return Curve

  • 績效曲線非常平穩,平均年報酬為 40%;累積報酬曲線見文首總覽圖,走勢平穩、常創新高

Drawdown Curve

  • 最大MDD為-13.75%,遠小於一開始的FinLab策略

Final Portfolio 回檔曲線,最大 MDD 為 -13.75%

月報酬分布圖

Final Portfolio 月報酬分布直方圖

逐月return

  • 每年皆為正報酬,即便2022年空頭年也有勉強守住
  • 最大單月虧損為-8%

Final Portfolio 逐月報酬熱力圖,每年皆為正報酬

資產配置隨時間作圖

  • 可發現投資組合確實會隨著時間變化而動態調整(20天調整一次),且主要由合約負債建築工、低波動本意成長比、股價淨值比外掛大盤指針這些比較穩健的策略佔投資組合的大部分。

資產配置權重隨時間變化的堆疊面積圖,每 20 天調整一次

結論

首先受限於策略皆為近幾年開發,沒辦法只拿開發後的時間段來進行資產配置,因此策略本身績效有一部分是來自訓練集的資料,實際上線的績效理論上會稍微下降。

但用肉眼就可以觀察到,整個投資組合的走勢相當平穩,回檔幅度也非常小,常常創新高。

完整 Portfolio Stats Summary (素材、有需要可自由取用)

Final Portfolio 完整績效統計摘要表 Portfolio Stats Summary

與原FinLab策略比較 & 槓桿效果分析

當日報酬波動程度對比

Final Portfolio 與原策略當日報酬波動程度對比圖一

  • 平均持有所有策略 vs Final Portfolio,可以看出來每日的波動度也稍微贏過平均持有

平均持有所有策略與 Final Portfolio 的每日波動度對比圖

槓桿的作用

  • 我們的資產配置是一個高Sharpe Ratio的投資組合,策略本身比較穩定,因此風險、報酬都比較低。但如果願意承受風險更多的風險,我們可以藉由槓桿來等比例的放大我們的投資組合。
  • 在同樣程度的風險(波動率)下,Final Portfolio可以獲得三者之中的最高報酬。同時斜率的傾斜角度其實就是Sharpe Ratio,在我們假設無風險利率為0的時候,夏普比例就等於報酬率/標準差,也就是圖中藍/綠斜線的斜率。從這個角度來理解,就能很明顯的看出Final Portfolio > 平均持有 >> 單一策略。因此即便你是想追求高報酬的投資人,也可以透過好的資產配置方式和適當的槓桿,來讓自己的投資更上一層樓。

加入槓桿後,同樣波動率下 Final Portfolio 報酬優於平均持有與單一策略

  • 同上,若將風險改成MDD的情況下,Final Portfolio表現一樣為三者最佳,而且差距更加顯著。

以 MDD 為風險衡量時 Final Portfolio 報酬同樣三者最佳的對比圖

延伸閱讀

免責聲明:本文僅供教學與研究參考,不構成投資建議或任何買賣推薦。文中報酬與回撤為歷史回測數據,策略多為近年開發,部分績效來自樣本內資料,實際上線績效可能下降;過去績效不代表未來表現,投資有風險,請審慎評估自身風險承受能力。

最後更新:2026-07|作者:FinLab 量化研究團隊(經量化研究員審閱)

VIP 區域提供:從 5000 組 Random Search 結果挑出穩健參數的完整判讀方法(model、obj、linkage、covariance、codependence、rm 逐參數散佈圖分析,最終選出年報酬約 40%、最大回撤 -13.75% 組合所用的參數)、依個人可承受回撤計算槓桿倍數的試算方法,以及完整實作 Colab 筆記本。

VIP 區域包含策略細節

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

FinLab AI

想建立自己的策略?

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

免費開始

更多風險與資產配置研究

查看全部