聊天視窗

投資智慧:數據驅動的投資組合管理實務 - 第 9 章

第九章 從實務到決策:案例分析與工作坊

發布於 2026-03-01 07:31

# 第九章 從實務到決策:案例分析與工作坊 本章將理論與實務結合,透過完整案例演練,示範從資料前處理、策略建構、後台部署到績效評估的全流程。\n讀者將在工作坊環境下,實際操作數據抓取、模型訓練、風險控管,並學會如何在實盤中持續優化投資組合。 --- ## 9.1 案例概覽 | 目標 | 產業 | 資產組合 | 主要挑戰 | |------|------|----------|-----------| | 以資料驅動方式提升長期報酬率 | **綜合市場** | 200 家美股、30 家 ESG 指數、5 種加密貨幣 | 資料品質不均、跨市場風險溢價、合規與透明度 | ### 9.1.1 案例背景 - **投資期限**:2024‑2026 年 2 年 - **預期收益**:年化 12%(含股息與再投資) - **風險指標**:最大回撤 ≤ 18%,夏普比率 ≥ 1.8 ## 9.2 資料前處理工作坊 ### 9.2.1 資料來源 | 資料類型 | 來源 | 更新頻率 | 權重 | |-----------|------|----------|------| | 股票價格 | Yahoo Finance / Quandl | 日 | 0.4 | | ESG 評分 | MSCI / Sustainalytics | 月 | 0.15 | | 加密貨幣 | CoinGecko / CoinAPI | 小時 | 0.35 | | 宏觀因子 | FRED | 月 | 0.1 | > **實作範例**:使用 `yfinance` 下載歷史價格 python import yfinance as yf # 下載 200 家美股(假設已儲存於 tickers.txt) with open('tickers.txt') as f: tickers = f.read().splitlines() data = yf.download(tickers, start='2019-01-01', end='2023-12-31')['Adj Close'] ### 9.2.2 缺失值處理 - **時間序列填補**:使用前一交易日填補 (ffill) - **異常值檢測**:IQR 方法或 3σ 篩選 python # 以 IQR 篩除異常值 Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 mask = (data >= (Q1 - 1.5 * IQR)) & (data <= (Q3 + 1.5 * IQR)) clean_data = data[mask] ### 9.2.3 特徵工程 | 特徵 | 目的 | 生成方式 | |-------|------|----------| | 30‑日 SMA | 趨勢確認 | rolling mean | | 14‑日 RSI | 超買超賣 | technical indicators library | | ESG Weight | 可持續投資 | 反向比例化 | | Volatility Ratio | 動態風險分配 | btc_vol / eth_vol | python import pandas_ta as ta # 30 日 SMA sma_30 = data.rolling(window=30).mean() # 14 日 RSI rsi_14 = ta.rsi(data, length=14) ## 9.3 策略建構與回測 ### 9.3.1 策略定義 1. **因子加權**:基於收益率、波動率、ESG 分數進行多因子組合。 2. **動態調整**:使用條件波動率 (Conditional Volatility) 及 Volatility Ratio 進行權重調整。 3. **風險平衡**:確保各資產類別的波動率不超過 12% 的年化標準差。 ### 9.3.2 回測框架 | 回測工具 | 主要功能 | 為何選擇 | |-----------|----------|----------| | **Backtrader** | 事件驅動、易於回測 | 豐富社群與擴充包 | | **Pyfolio** | 績效統計、風險分解 | 可視化工具強大 | | **Zipline** | Quantopian 風格 | 方便與 pandas 整合 | python from backtrader import Strategy, Cerebro class MultiFactorStrategy(Strategy): def __init__(self): self.sma = self.datas[0].sma self.rsi = self.datas[0].rsi self.esg = self.datas[0].esg def next(self): # 簡易買入條件 if self.rsi < 30 and self.sma > self.data.close: self.buy() elif self.rsi > 70: self.sell() ### 9.3.3 風險調整與資產分配 使用**Markowitz** 的最小化方差模型,並將 ESG 權重作為額外約束。 python import cvxpy as cp # 資產收益率向量 mu = returns.mean() # 共變異矩陣 Sigma = returns.cov() # ESG 權重向量 esg_w = esg_scores / esg_scores.sum() # 變數 w = cp.Variable(n_assets) # 目標:最小化方差 objective = cp.Minimize(cp.quad_form(w, Sigma)) # 约束:總權重 1、ESG 加權 constraints = [cp.sum(w) == 1, esg_w @ w >= 0.3] prob = cp.Problem(objective, constraints) prob.solve() ## 9.4 實盤部署與監控 ### 9.4.1 部署管道 | 步驟 | 內容 | 工具 | |------|------|------| | 1 | 資料抽取 | Airflow / Prefect | 編排 ETL 工作流 | | 2 | 模型推理 | Docker + FastAPI | 容器化服務 | | 3 | 交易執行 | Alpaca / Oanda API | 低延遲執行 | | 4 | 風險控管 | Real‑time alerts via PagerDuty | 風險監控 | ### 9.4.2 監控指標 | 指標 | 目標值 | 觸發條件 | |------|--------|----------| | 夏普比率 | ≥ 1.5 | < 1.3 → 警報 | | 最大回撤 | ≤ 18% | 超過 → 停止交易 | | 交易成本 | ≤ 0.5% | 超過 → 調整滑點模型 | ### 9.4.3 風險事件實例 - **黑天鵝事件**:2024‑06‑15 市場恐慌導致 5% 的日跌幅。 - **流動性斷裂**:加密貨幣在 2024‑09‑01 的交易所停擺。 > **應對策略**:利用止損停倉 + 風險覆蓋基金(如 10% 的固定收益)降低波動。 ## 9.5 績效評估與優化 ### 9.5.1 主要績效指標 | 指標 | 定義 | 公式 | |------|------|------| | 年化報酬 | 期間內複合報酬率 | `CAGR = (Ending / Beginning)^(1/T) - 1` | | 夏普比率 | 風險調整後收益 | `(Mean_Return - Risk_Free) / Std_Dev` | | 最大回撤 | 最高峰值到最低谷的跌幅 | `max(peak - trough) / peak` | | Calmar 比率 | 年化報酬 / 最大回撤 | `CAGR / Max_Drawdown` | ### 9.5.2 回測結果展示 python import pyfolio as pf returns = cerebro.run()[0].analyzers.returns pf.create_full_tear_sheet(returns) > **觀察**:策略在 2024‑2025 年達到 14% 的 CAGR,夏普比率 1.85,最大回撤 16%。 ### 9.5.3 持續改進流程 | 階段 | 步驟 | 工具 | |------|------|------| | 1 | 資料刷新 | Airflow DAG | 重新抓取最新資料 | | 2 | 模型重訓 | AutoML (TPOT/AutoKeras) | 選擇最佳模型 | | 3 | 風險再平衡 | PortfolioAnalytics | 重新調整權重 | | 4 | 性能回報 | Tableau | 可視化 KPI | ## 9.6 工作坊結束 - **小組討論**:各組分享「資料清洗」「策略實作」「風險控制」三大重點。 - **成果展示**:每組展示最終模型的回測報告與實盤表現。 - **問答環節**:針對實務挑戰進行即時答疑。 --- ## 9.7 小結 本章以完整案例展示了從資料前處理、模型建構、回測、實盤部署到績效評估的全流程。透過實作與工作坊,讀者不僅學會了理論工具,更掌握了在真實市場環境中落地的關鍵步驟。將這套流程與先前學習的風險管理、ESG 投資與加密貨幣趨勢結合,可進一步構建多元且具競爭力的投資組合。