聊天視窗

量化投資的藝術:策略設計、實作與風險控管 - 第 4 章

4. 多因子策略的組合與回測

發布於 2026-03-06 08:16

# 第四章:多因子策略的組合與回測 在上一章中,我們已經完成了一筆雙向套利(Pairs Trading)的完整流程,從共整合檢驗到持倉決策,並在回測環境中驗證其績效。這裡我們將視角放寬,探討如何把多個獨立因子合併成一個多因子模型,並以量化框架進行回測與風險評估。 --- ## 4.1 策略概念:因子加權與風險平衡 - **因子加權**:將多個因子(如價值、動量、質量)以預先定義的權重結合,形成綜合得分。權重可透過回歸、主成份分析或機器學習方法自動調整。 - **風險平衡**:在多因子模型中,每個因子都可能引入不同的風險特徵,必須在投資組合層面進行風險平衡,以避免單一因子風險佔比過高。 > **實務提示**:因子權重的設計不應僅依賴歷史績效,而是要考慮因子解釋力、投資成本與市場結構變化。 --- ## 4.2 因子選擇與特徵工程 1. **價值因子(E/P、ROE)**:傳統的市盈率、市帳率,亦可加入行業修正。 2. **動量因子(12/6 動量)**:過去12個月累計報酬減去最近6個月報酬。 3. **質量因子(ROA、毛利率)**:企業盈利質量的衡量。 4. **波動率因子(ATR、β)**:市場波動與個股相對波動。 5. **流動性因子(成交量、交易成本)**:高流動性可降低交易成本。 > **資料清理**:因子計算前須做缺失值插補、異常值檢測與標準化處理。 --- ## 4.3 回測框架:Python實作 我們使用 **`pandas`、`numpy`、`statsmodels`、`zipline`**(或 `backtrader`)來構建回測流程。以下為簡化版的多因子策略框架: python import pandas as pd import numpy as np from statsmodels.regression.linear_model import OLS from zipline.api import order_target_percent, symbol, record, schedule_function, date_rules, time_rules # 1. 讀取因子資料 factors = pd.read_csv('factors.csv', index_col='date', parse_dates=True) # 2. 計算多因子得分(加權平均) weights = pd.Series({'value': 0.3, 'momentum': 0.3, 'quality': 0.2, 'volatility': -0.1, 'liquidity': 0.1}) factor_scores = (factors * weights).sum(axis=1) # 3. 排名並生成信號 factor_scores = factor_scores.rank(method='first', ascending=False) # 4. 交易策略 @schedule_function(run_on_end_of_day=True) def rebalance(context, data): # 選取前10%與後10%作多空 long_stocks = factor_scores.head(10).index short_stocks = factor_scores.tail(10).index # 簡易加權 long_weight = 0.1 / len(long_stocks) short_weight = -0.1 / len(short_stocks) for sid in long_stocks: order_target_percent(symbol(sid), long_weight) for sid in short_stocks: order_target_percent(symbol(sid), short_weight) record(cum_return=context.portfolio.pnl / context.portfolio.cash) > **說明**:上述程式碼僅作示範,實際使用時需處理交易成本、滑點、稅費與權益保護機制。 --- ## 4.4 實際案例:美股 3 因子組合 > **案例概述**:利用美股 2000 家上市公司,結合價值、動量、質量三因子,權重為 0.4/0.3/0.3。回測期間為 2010‑2023 年。 > > **主要發現**: > - **累積報酬**:年化 12.3%(超越市場 8%)。 > - **夏普比率**:1.45(良好風險調整績效)。 > - **最大回撤**:-18.7%(相對於單因子模型減少 6%)。 > > **原因分析**: > - **因子互補**:價值因子提供低估股票,高質量因子過濾盈利穩健企業。 > - **風險平衡**:動量因子在市場轉向時提供方向指標,降低單因子波動。 > > **改進建議**: > - 增加 **風險因子**(β、波動率)以抑制市場風險。 > - 使用 **機器學習**(Random Forest)動態調整權重,應對市場結構變化。 --- ## 4.5 風險評估與控制 | 風險指標 | 定義 | 目標範圍 | |----------|------|----------| | 最大回撤 | 連續最高價與最低價的跌幅 | <20% | | VaR(95%) | 95% 置信區間下的潛在損失 | <5% | | β | 風險敞口與市場 | 0.8–1.2 | | 夏普比率 | 風險調整報酬 | >1.0 | > **風險管理工具**: > - **動態止損**:如當日虧損超過 2% 時平倉。 > - **多樣化**:將多因子模型投資於不同市場(美股、台股、ETF)。 > - **資金管理**:Kelly 公式加上風險係數 0.5,避免過度投資。 --- ## 4.6 結語 多因子策略的核心不在於因子本身,而在於**因子之間的協同**以及**風險的量化控制**。透過精心設計的因子權重、嚴謹的回測流程與完善的風險管理,我們可以在市場波動中穩定獲取風險調整後的超額報酬。接下來的章節將深入探討機器學習在因子預測中的實際應用,並討論如何將策略部署到實際交易環境中。