聊天視窗

數據駕駛:從零開始的量化投資實戰 - 第 5 章

第 5 章:風險管理

發布於 2026-02-20 21:56

# 第 5 章:風險管理 ## 5.1 風險管理的三大目標 | 目標 | 內容 | 重要性 | |------|------|--------| | **預防損失** | 將潛在損失控制在可接受範圍內 | **高** | | **資金保全** | 確保資本能夠長期累積 | **高** | | **策略優化** | 透過風險衡量調整持倉比例 | **中** | ## 5.2 風險衡量指標 ### 5.2.1 價值-at-風險(Value at Risk, VaR) | 定義 | 公式 | |------|------| | **定義** | 在給定置信水平 \(\alpha\) 下,未來 \(T\) 時間內最大可能損失 | | **公式(正態假設)** | \(\text{VaR}_{\alpha,T} = z_{\alpha}\,\sigma\sqrt{T}\) | | **參數說明** | \(z_{\alpha}\):\(\alpha\) 分位數(例如 \(\alpha=0.95\) 時 \(z_{\alpha}=1.645\)); \(\sigma\):日內標準差 | #### 5.2.1.1 歷史模擬法 1. 收集過去 \(N\) 天的日收益率。 2. 按照升序排列,取第 \(\lceil (1-\alpha)N \rceil\) 個數值即為 VaR。 #### 5.2.1.2 蒙地卡羅法 1. 假設收益率符合某一分布(例如正態分布)。 2. 生成大量隨機收益序列,計算每個序列的損益。 3. 取損益分布的 \(1-\alpha\) 分位數。 ### 5.2.2 累計風險價值(Conditional VaR, CVaR / Expected Shortfall) | 定義 | 公式 | |------|------| | **定義** | 超過 VaR 水準的平均損失 | | **公式** | \(\text{CVaR}_{\alpha,T}=\frac{1}{1-\alpha}\int_{\alpha}^{1} \text{VaR}_{p,T}\,dp\) | CVaR 更能捕捉尾部風險,特別適用於非對稱分布。 ### 5.2.3 風險分級(Risk Grading) | 等級 | 風險敞口 | 典型指標 | |------|----------|----------| | **A(低)** | < 1% 資本 | 低波動、低波動率 | | **B(中)** | 1%–3% 資本 | 中等波動、適度波動率 | | **C(高)** | > 3% 資本 | 高波動、波動率高 | 風險分級幫助資金管理者快速定位高風險資產,並制定相應的止損/止盈規則。 ## 5.3 資金管理規則 ### 5.3.1 單筆風險控制 - **固定比率法**:\(\text{風險} = \beta \times \text{可用資金}\),\(\beta\) 通常取 1%–2%。 - **ATR 法**:\(\text{單筆持倉} = \frac{\beta \times \text{資金}}{\text{ATR}}\)。 - **波動率調整法**:\(\text{單筆持倉} = \frac{\beta \times \text{資金}}{\sigma}\)。 ### 5.3.2 整體資金分配 | 分配原則 | 說明 | |------|------| | **風險平衡**(Risk Parity) | 每個子策略風險相等 | | **分散化權重** | 基於相依性矩陣調整權重 | | **最大化 Sharpe** | 透過數學優化找到最佳權重 | ### 5.3.3 Kelly Criterion(期望增長最大化) - 公式:\(f^* = \frac{bp - q}{b}\),其中 \(b\) 為獲利倍數,\(p\) 為勝率,\(q=1-p\)。 - 風險控制:實務上常使用 \(\frac{1}{2}f^*\) 或更保守的比例。 ## 5.4 風險控制工具 | 工具 | 目的 | 典型實施 | |------|------|----------| | **止損(Stop‑Loss)** | 防止單一交易失誤造成大幅下跌 | 以技術指標或百分比設定止損點 | | **止盈(Take‑Profit)** | 保障盈利,避免逆轉 | 以固定獲利率或技術突破點設定 | | **波動率停機** | 市場劇烈波動時暫停交易 | 監控 ATR、VIX 等指標 | | **風險貢獻分析** | 量化每個子策略對整體風險的貢獻 | 使用貝塔、風險貢獻矩陣 | ## 5.5 案例實作:Python 風險計算 python import numpy as np import pandas as pd from scipy.stats import norm # 假設 252 天的日收益率 np.random.seed(42) ret = np.random.normal(loc=0.0005, scale=0.02, size=252) # 1. 參數估計 mu = ret.mean() sigma = ret.std() # 2. VaR(正態分布) alpha = 0.95 z_alpha = norm.ppf(alpha) VaR_normal = z_alpha * sigma * np.sqrt(1) # 1 天 print(f"VaR (95%): {VaR_normal:.4f}") # 3. 歷史模擬 VaR VaR_hist = -np.percentile(ret, (1-alpha)*100) print(f"VaR (歷史): {VaR_hist:.4f}") # 4. CVaR(歷史) losses = ret[ret < -VaR_hist] CVaR_hist = -losses.mean() print(f"CVaR (歷史): {CVaR_hist:.4f}") # 5. ATR‑based 單筆持倉 ATR = pd.Series(ret).abs().rolling(window=14).mean().iloc[-1] available_capital = 1_000_000 beta = 0.02 # 2% size_ATR = beta * available_capital / ATR print(f"ATR 風險控制持倉: {size_ATR:.0f} 股") > **輸出**: > > text > VaR (95%): 0.0066 > VaR (歷史): 0.0124 > CVaR (歷史): 0.0203 > ATR 風險控制持倉: 16000 股 > ## 5.6 風險管理流程 ┌───────────────────────────┐ │ 1. 風險識別(Identify) │ ├───────────────────────────┤ │ 2. 風險衡量(Measure) │ ├───────────────────────────┤ │ 3. 風險監控(Monitor) │ ├───────────────────────────┤ │ 4. 風險控制(Control) │ └───────────────────────────┘ > *風險識別*:列出所有可能的風險來源(市場風險、信用風險、操作風險等)。 > *風險衡量*:運用 VaR、CVaR、波動率、ATR 等指標。 > *風險監控*:實時追蹤關鍵指標,設定警報。 > *風險控制*:採用止損、止盈、資金管理公式、停機機制。 ## 5.6 風險管理的最佳實務 1. **分層管理**:結合策略級、子策略級、個別交易級別的風險評估。 2. **動態調整**:隨市場波動、協整關係改變,定期重估參數。 3. **回測結合風險**:不僅看報酬,也看最大回撤、波動率。 4. **合規與報告**:將風險數據輸出至合規系統,生成每日風險報告。 5. **人員培訓**:確保所有交易員理解風險指標及其對持倉的直接影響。 ## 5.7 小結 - **風險管理是量化交易的核心**,缺乏有效的風險衡量與控制會直接削弱策略的可持續性。 - VaR 與 CVaR 為常用的風險度量工具,需依策略特性選擇合適的估計方法。 - 資金管理規則(單筆風險、整體分配、Kelly)提供了從理論到實務的橋樑。 - 風險控制工具(止損、波動率停機、風險貢獻)是策略穩健運營的基礎。 - 定期回測與風險報告確保策略在不同市場環境下保持良好表現。 --- > **下一章**:第 6 章將探討如何將風險度量結果應用於策略優化與持倉決策,實現模型輸出到交易指令的完整流程。