# 组合优化详解 ## `quant_portfolio_optimization_demo.py` 学习文档 > **目标读者**:量化入门者,已完成前四篇学习 > **配套文件**:`quant_portfolio_optimization_demo.py` > **系列位置**:第 5 篇 — 组合优化篇 --- ## 目录 1. [为什么需要组合优化?](#1-为什么需要组合优化) 2. [核心数学框架:均值-方差优化](#2-均值-方差优化mean-variance-optimization) 3. [协方差矩阵估计:从样本到收缩](#3-协方差矩阵估计) 4. [有效前沿与资本市场线](#4-有效前沿与资本市场线) 5. [三种特殊组合](#5-三种特殊组合) 6. [风险平价:不依赖预期收益的方法](#6-风险平价risk-parity) 7. [Black-Litterman 模型:贝叶斯框架](#7-black-litterman-模型) 8. [带约束的组合优化](#8-带约束的组合优化) 9. [滚动回测:五策略横向对比](#9-滚动回测) 10. [结果解读](#10-结果解读) 11. [术语速查表](#11-术语速查表) --- ## 1. 为什么需要组合优化? ### 1.1 从"选股"到"构建组合" 前几篇 Demo 告诉我们如何**选择好股票**(Alpha 因子)。但知道哪些股票好之后,下一个问题是: > "我手里有 20 只股票,分别该买多少?" 这个问题看似简单,但影响极大: ``` 方案1:每只股票买 5%(等权,最简单) 方案2:只买最好的 3 只,各 33%(过度集中) 方案3:根据各股的风险-收益特性,科学分配权重 ← 这就是组合优化 ``` ### 1.2 多元化的数学价值 多元化 (Diversification) 的精华在于:**不同资产的涨跌不完全同步(相关系数 < 1),组合的风险可以低于各资产风险的加权平均**。 $$\sigma_p = \sqrt{\sum_i \sum_j w_i w_j \sigma_{ij}} \leq \sum_i w_i \sigma_i$$ 其中 $\sigma_{ij} = \rho_{ij} \sigma_i \sigma_j$ 是协方差,$\rho_{ij}$ 是相关系数。 **当 $\rho_{ij} < 1$ 时,等号不成立,组合波动率严格小于各股波动率的加权平均。** 直觉例子: | 资产 | 波动率 | 情景 | |------|--------|------| | 科技股 A | 30% | 经济好时大涨,经济差时大跌 | | 医疗股 B | 25% | 与经济景气关联较小,独立波动 | | A+B 等权 | ≈ **20%**(低于 27.5%!)| 两者不完全相关,组合风险被"稀释" | ### 1.3 优化的目标 Harry Markowitz (1952) 在诺贝尔奖论文中指出,理性投资者应该: > **在承担相同风险的前提下,选择期望收益最高的组合; > 在期望相同收益的前提下,选择风险最小的组合。** 这就是"均值-方差框架 (Mean-Variance Framework)"的核心逻辑。 --- ## 2. 均值-方差优化(Mean-Variance Optimization) ### 2.1 问题形式 组合优化的数学问题可以写成: $$\boxed{\min_{w}\ w'\Sigma w \quad \text{subject to} \quad w'\mu = \mu^*, \quad \mathbf{1}'w = 1, \quad w \geq 0}$$ | 符号 | 含义 | |------|------| | $w$ | 权重向量 (weight vector), shape $(N, 1)$ | | $\Sigma$ | 协方差矩阵 (covariance matrix), shape $(N, N)$ | | $\mu$ | 预期收益向量 (expected return vector), shape $(N, 1)$ | | $\mu^*$ | 目标收益率 (target return) | | $\mathbf{1}'w = 1$ | 全投资约束 (full investment constraint) | | $w \geq 0$ | 多头约束 (long-only constraint) | 这个问题在不同目标收益率 $\mu^*$ 下重复求解,就得到了**有效前沿**。 ### 2.2 算法:SLSQP(序列二次规划) 本 Demo 使用 `scipy.optimize.minimize` 的 SLSQP 方法: ``` SLSQP = Sequential Least Squares Programming 序列二次规划法 ``` SLSQP 每轮迭代将非线性约束优化问题近似为一个二次规划 (QP) 子问题,逐步收敛到最优解。 ```python from scipy.optimize import minimize result = minimize( objective, # 目标函数(如最小化组合方差) w0, # 初始权重(等权作为起点) method='SLSQP', bounds=[(0.0, 1.0)] * N, # 权重区间:[0%, 100%] constraints=[ {'type': 'eq', 'fun': lambda w: sum(w) - 1} # 权重之和 = 1 ], options={'ftol': 1e-12, 'maxiter': 1500} ) ``` ### 2.3 组合的三个核心指标 给定权重 $w$、预期收益 $\mu$、协方差矩阵 $\Sigma$,可以计算: | 指标 | 公式 | 说明 | |------|------|------| | 组合收益率 | $r_p = w'\mu$ | 各股收益的加权平均 | | 组合波动率 | $\sigma_p = \sqrt{w'\Sigma w}$ | 关键!非线性,受协方差影响 | | 夏普比率 | $SR = (r_p - r_f) / \sigma_p$ | 单位风险的超额收益,越高越好 | --- ## 3. 协方差矩阵估计 ### 3.1 为什么协方差矩阵很重要? 组合优化的结果对协方差矩阵的估计极其敏感。$\Sigma$ 的一个小误差,可能导致组合权重大幅波动——这是 Markowitz 框架在实践中最大的挑战。 ### 3.2 样本协方差矩阵的问题 $$\hat{\Sigma}_{sample} = \frac{1}{T-1} \sum_{t=1}^{T} (r_t - \bar{r})(r_t - \bar{r})'$$ **问题1:维度诅咒 (Curse of Dimensionality)** 估计一个 $N$ 只股票的协方差矩阵,需要估计 $N(N+1)/2$ 个参数。 20 只股票 → 210 个参数;50 只股票 → 1275 个参数 当 T(样本长度)与 N(资产数量)之比较小时(如 T/N < 5),估计误差极大。 **问题2:条件数过高 (High Condition Number)** ``` 条件数 (Condition Number) = 最大特征值 / 最小特征值 ``` 条件数高意味着矩阵"病态"——求逆时微小误差被放大,优化结果不稳定。 ### 3.3 Ledoit-Wolf 收缩估计 **核心思想**:将样本协方差矩阵向一个"结构化目标"方向收缩: $$\hat{\Sigma}_{LW} = (1-\alpha) \hat{\Sigma}_{sample} + \alpha \cdot F$$ 其中: - $F$ 是目标矩阵(如"单位矩阵×平均方差"),结构简单,估计误差小 - $\alpha$ 是**最优收缩系数**(由数据自动决定,不需手动调参) **收缩的直觉**: - 样本协方差:复杂,可能过度拟合历史数据 - 目标矩阵:简单,但忽略了资产间真实相关性 - 收缩后:二者的折中,在偏差和方差之间取平衡 ```python from sklearn.covariance import LedoitWolf lw = LedoitWolf() lw.fit(return_data) cov_shrunk = lw.covariance_ # 收缩后的协方差矩阵 shrink_coeff = lw.shrinkage_ # 最优收缩系数 α(自动计算) ``` **本 Demo 结果**: - 样本协方差条件数:35.4 - 收缩后条件数:34.0(收缩系数 α = 0.0098,很小 → 本数据质量较好,无需大幅收缩) --- ## 4. 有效前沿与资本市场线 ### 4.1 有效前沿(Efficient Frontier) **有效前沿**是所有"帕累托最优"组合的集合: - 在相同波动率下,收益最高 - 在相同收益下,波动率最低 有效前沿由两个端点确定: - **左端点**:全局最小方差组合 (GMV)——风险最低的点 - **右端点**:单只股票(预期收益最高的那只,极度集中) ``` ▲ 收益率 │ × × ←← 有效前沿 │ × MaxSharpe ● │ × MinVar ● │ × × × │ × × × × │────────────────────→ 波动率 ``` 位于有效前沿**左下方**的是"劣势组合"——存在一个前沿组合,既有更高收益、又有更低风险。 ### 4.2 资本市场线(Capital Market Line, CML) 引入无风险资产(如国债,年化收益率 $r_f = 2\%$)后: - 投资者可以在"无风险资产"和"某个风险组合"之间分配资金 - 最优的风险组合就是从 $r_f$ 出发,与有效前沿相切的那点——**切线组合 (Tangency Portfolio)**,也叫**最大夏普组合** 资本市场线的方程: $$r_p = r_f + SR_{tangency} \times \sigma_p$$ - 斜率 $SR_{tangency}$ 就是切线组合的夏普比率 - **任何有效投资者都应该持有切线组合**(可以加上无风险资产来调节总风险) --- ## 5. 三种特殊组合 ### 5.1 等权组合(Equal Weight, EW) $$w_i = \frac{1}{N} \quad \forall i$$ **优点**: - 最简单,无需任何参数估计 - 对估计误差完全免疫 - 实证研究发现,等权组合在许多市场中难以被复杂模型超越("1/N 难题") **缺点**: - 完全忽略各股的风险差异(高波动股和低波动股同等对待) - 没有利用任何收益预测信息 ### 5.2 最小方差组合(Minimum Variance Portfolio, MinVar) $$\min_w\ w'\Sigma w \quad \text{s.t.}\ \mathbf{1}'w=1,\ w\geq 0$$ **重要特点**:**完全不需要预期收益 $\mu$ 的估计!** 这是一个极大的优势——预期收益 $\mu$ 是非常难以估计的,而协方差矩阵 $\Sigma$ 相对更稳定(因为波动率和相关性的历史规律更具持久性)。 **适用场景**:投资者没有可靠的收益预测,但希望最小化风险。 **本 Demo 结果**: - 收益 12.5%,波动 **18.5%**(所有策略中最低!),夏普 0.57 - 回测中夏普 1.005 — 体现了低波动的稳健性 ### 5.3 最大夏普组合(Maximum Sharpe / Tangency Portfolio) $$\max_w\ \frac{w'\mu - r_f}{\sqrt{w'\Sigma w}} \quad \text{等价于}\ \min_w\ -\text{SR}$$ **这是理论上最优的风险组合**,但高度依赖对 $\mu$ 的准确估计。 实践中的问题: 1. **误差传导**:$\mu$ 的估计误差被优化器"放大",产生极端权重 2. **集中效应**:最大夏普组合常常把权重集中在少数几只"看起来最好"的股票上 3. **过拟合**:历史中表现好的股票,未来未必继续好 **本 Demo 结果**: - 收益 50.4%,波动 **29.7%**(最高!),夏普 1.63(基于全期数据的理论值) - 回测夏普 0.844 — 因为样本内最优 ≠ 样本外最优,存在过拟合 --- ## 6. 风险平价(Risk Parity) ### 6.1 核心思想 等权组合 → 权重相等 → 但高波动股对组合风险贡献更大! 风险平价 → **风险贡献相等** → 每只股票对总风险的贡献相同 ``` 等权组合中: 低波动股(σ=15%)权重 5% → 风险贡献 很小 高波动股(σ=35%)权重 5% → 风险贡献 很大 ← 实际上被高波动股"主导" 风险平价组合: 低波动股(σ=15%)权重 大(≈10%)→ 风险贡献 = 1/N 高波动股(σ=35%)权重 小(≈2%)→ 风险贡献 = 1/N ← 真正均衡 ``` ### 6.2 风险贡献的数学 **边际风险贡献 (Marginal Risk Contribution, MRC)**: $$\text{MRC}_i = \frac{\partial \sigma_p}{\partial w_i} = \frac{(\Sigma w)_i}{\sigma_p}$$ **绝对风险贡献 (Risk Contribution, RC)**: $$\text{RC}_i = w_i \times \text{MRC}_i = \frac{w_i \cdot (\Sigma w)_i}{\sigma_p}$$ **验证**:$\sum_i \text{RC}_i = \sigma_p$(各股风险贡献之和 = 总波动率) **等风险贡献条件**: $$\frac{\text{RC}_i}{\sigma_p} = \frac{1}{N} \quad \Leftrightarrow \quad w_i \cdot (\Sigma w)_i = w_j \cdot (\Sigma w)_j \quad \forall i, j$$ ### 6.3 风险平价的优化问题 $$\min_w \sum_i \left(\frac{\text{RC}_i}{\sigma_p} - \frac{1}{N}\right)^2$$ 这是一个非线性最小二乘问题(没有解析解),需要数值优化求解。 ```python def objective(w): rc, sigma_p = risk_contributions(w, cov) rc_pct = rc / sigma_p # 各资产风险贡献占比 target = 1.0 / N # 目标:1/N return np.sum((rc_pct - target) ** 2) ``` **本 Demo 结果**: - 各股 RC 最大偏差 = **0.000**(完美等风险贡献!) - 收益 9.5%,波动 21.0%,夏普 0.36(因为低波动持仓更多低收益股) ### 6.4 风险平价的适用场景 | 场景 | 适合 | 理由 | |------|------|------| | 没有可靠的收益预期 | ✓ | 不需要 μ 估计 | | 管理多资产配置(股债商品)| ✓ | 各资产类别风险差异大 | | 需要稳健的长期策略 | ✓ | 比最大夏普更稳定 | | 单一股票池、收益差异明显 | △ | 可能过于保守 | --- ## 7. Black-Litterman 模型 ### 7.1 Markowitz 框架的根本缺陷 **对预期收益的"蝴蝶效应"**: Markowitz 优化是一个"误差放大器"——$\mu$ 哪怕有 1% 的估计误差,权重可能变动 30%+。这导致实际使用中,最大夏普组合常常产生极度集中的"角点解"。 Black-Litterman(1990)给出了一个优雅的解决方案:**从市场均衡出发,而不是从历史均值出发**。 ### 7.2 三步 BL 框架 **第一步:建立先验(市场均衡隐含收益)** 市场是所有投资者信息的综合。如果市场是均衡的,当前市值加权组合 $w_{mkt}$ 就是所有投资者的"最优"选择。 反向推导这个最优选择对应的隐含收益(CAPM 均衡): $$\Pi = \delta \cdot \Sigma \cdot w_{mkt}$$ | 符号 | 含义 | |------|------| | $\Pi$ | 市场均衡隐含超额收益 (Market-implied excess returns) | | $\delta$ | 市场风险厌恶系数,通常取 2.0~3.0 | | $\Sigma$ | 协方差矩阵 | | $w_{mkt}$ | 市值权重组合 (Market cap weights) | 这个先验的优点:**总是给出合理的、多元化的权重**,不会产生极端集中。 --- **第二步:表达投资者观点** 投资者可以输入对特定股票(或组合)的主观看法: ``` 观点矩阵 P (View matrix, K × N): P[k, i] = 股票 i 在观点 k 中的权重(正=多头,负=空头) 观点收益向量 Q (View returns, K × 1): Q[k] = 观点 k 的预期超额收益 观点不确定性矩阵 Ω (View uncertainty, K × K 对角矩阵): Ω[k,k] 越大 = 对第 k 个观点越不自信 ``` 本 Demo 的两个观点: ```python # 观点1(绝对观点): "S01 的年化超额收益将达到 +5%" P[0, 1] = 1.0 Q[0] = 0.05 # 观点2(相对观点): "S00 将比 S04 多赚 3%" P[1, 0] = +1.0 # S00 多头 P[1, 4] = -1.0 # S04 空头 Q[1] = 0.03 ``` --- **第三步:贝叶斯更新,求后验预期收益** $$\mu_{BL} = \underbrace{\left[(\tau\Sigma)^{-1} + P'\Omega^{-1}P\right]^{-1}}_{\text{精度矩阵之和的逆}} \cdot \underbrace{\left[(\tau\Sigma)^{-1}\Pi + P'\Omega^{-1}Q\right]}_{\text{加权均值向量}}$$ 直观理解: - $(\tau\Sigma)^{-1}$ 越大 → 先验越"确定",后验越接近先验 $\Pi$ - $\Omega^{-1}$ 越大 → 观点越"确定",后验越接近观点 $Q$ - $\tau$ 是先验的"置信度调节参数",通常取 0.025~0.10 **本 Demo 结果**: - BL 将 S00(观点2的受益者)权重从 5%(等权)调升至 **17.1%** - 后验收益比均衡先验更集中在观点受益股 - 回测中 BL 夏普 **1.107**,Calmar **1.51**——所有策略中最优 ### 7.3 BL vs 直接 Markowitz | | 直接 Markowitz | Black-Litterman | |--|----------------|-----------------| | 先验 | 历史均值(含估计误差) | 市场均衡(反向优化,更稳定) | | 观点融入 | 直接修改 μ(极端敏感) | 贝叶斯混合(平滑过渡) | | 结果 | 容易极度集中 | 分散化程度好 | | 无观点时 | 结果无意义 | 退回到市值加权 | --- ## 8. 带约束的组合优化 ### 8.1 为什么需要约束? 纯粹的 Markowitz 优化常常产生: - 单只股票权重 40%+(过度集中) - 某行业权重 0%(完全空缺某一行业的风险敞口) - 与上期持仓相差 80%(极高换手率 → 高交易成本) 实际组合管理需要通过约束来控制这些问题。 ### 8.2 三类常见约束 **约束1:权重上下限(集中度管理)** ```python bounds = [(0.0, 0.15)] * N # 每只股票:0% ≤ w_i ≤ 15% ``` **约束2:行业权重区间** ```python # 每行业权重在 10%~35% 之间 for sector_indices in SECTORS.values(): constraints.append({ 'type': 'ineq', 'fun': lambda w: sum(w[sector_indices]) - 0.10 # ≥ 10% }) constraints.append({ 'type': 'ineq', 'fun': lambda w: 0.35 - sum(w[sector_indices]) # ≤ 35% }) ``` **约束3:换手率约束(交易成本控制)** ```python # 本期与上期权重的 L1 距离 ≤ 50% # L1 distance = Σ |w_new,i - w_old,i| constraints.append({ 'type': 'ineq', 'fun': lambda w: 0.50 - np.sum(np.abs(w - w_prev)) }) ``` **本 Demo 结果(带约束最大夏普)**: - 夏普 0.94(vs 无约束的 1.63)——约束降低了理论最优解的质量 - 但实际上更可行:最大单股 15%,各行业 10%~35%,约束全部满足 ✓ ### 8.3 约束与优化效率的权衡 ``` 约束越多 → 可行域越小 → 最优解越差(理论值) 约束越多 → 组合越分散 → 实际表现可能更好(防止过拟合) ``` 这是组合管理的核心矛盾:**理论最优 vs 实践可行**。 --- ## 9. 滚动回测 ### 9.1 滚动回测的必要性 如果用全量历史数据估计 $\mu$ 和 $\Sigma$,再用"最优"权重买入,实际上**使用了未来信息**(前视偏差 / Look-Ahead Bias)——这样的回测结果不真实。 正确做法:滚动窗口(Walk-Forward)回测 ``` 时间轴: ──────── LOOKBACK ──────────────── 测试期 ────────── t=0 t=126 t=147 t=168 ... │─── 估计期 126 天 ──│─ 持有21天 ─│─ 持有21天 ─│ ↑ ↑ 估计 μ、Σ 用新数据重新估计,重新优化 ``` ### 9.2 调仓流程 ```python for t in rebalance_dates: # ① 用过去 126 天历史估计 μ 和 Σ hist = returns.iloc[t-126 : t] mu_roll = hist.mean() * 252 cov_roll = hist.cov() * 252 # ② 用当前估计重新计算各策略权重 w_minvar = min_variance(mu_roll, cov_roll) w_maxsharpe = max_sharpe(mu_roll, cov_roll) # ... # ③ 持有到下次调仓日,每日记录组合收益 for d in range(t, next_rebalance): portfolio_return = w @ returns.iloc[d] ``` ### 9.3 五策略对比结果 | 策略 | 年化收益 | 年化波动 | 夏普比率 | 最大回撤 | Calmar | |------|----------|----------|----------|----------|--------| | 等权 EW | 17.6% | 22.4% | 0.70 | -22.3% | 0.79 | | 最小方差 MinVar | 21.6% | **19.5%** | 1.00 | -22.1% | 0.98 | | 最大夏普 MaxSharpe | **25.0%** | 27.2% | 0.84 | -24.5% | 1.02 | | 风险平价 RP | 17.3% | 21.6% | 0.71 | -21.7% | 0.80 | | **Black-Litterman BL** | **25.6%** | 21.3% | **1.11** | **-16.9%** | **1.51** | --- ## 10. 结果解读 ### 10.1 最小方差 vs 等权 MinVar 收益比等权高 4%,波动比等权低 3%——用更复杂的优化换来了双向改善。 这通常在**样本量充足、协方差估计可靠**时发生。 ### 10.2 最大夏普的"过拟合"现象 理论值:Sharpe = 1.63(全量数据) 回测值:Sharpe = 0.84(样本外) **下降 50%**——这就是过拟合的代价。滚动窗口估计出的 $\mu$ 不稳定,每次重估都有误差,导致权重频繁剧烈变动。 ### 10.3 Black-Litterman 为什么最好? 1. **先验稳定**:从市场均衡出发,不过度依赖嘈杂的历史均值 2. **观点有效**:本 Demo 中 S00/S01(科技/金融)确实注入了较高的 Alpha,观点与真实 Alpha 方向一致 3. **不极端集中**:贝叶斯混合平滑了权重,避免了角点解 > **注意**:如果投资者观点是错误的,BL 的结果可能比等权更差。BL 的价值在于"正确观点"的放大,而不是错误观点的保护。 ### 10.4 Calmar 比率与最大回撤 $$\text{Calmar} = \frac{\text{年化收益}}{\text{最大回撤绝对值}}$$ BL 策略 Calmar = 1.51,最大回撤仅 -16.9%,说明在每次大幅下跌时损失相对可控。这对于风险管理 (Risk Management) 极为重要——一个持续盈利但某年大幅亏损的策略,在实际操作中往往难以坚持。 --- ## 11. 术语速查表 | 中文 | English | 简要说明 | |------|---------|----------| | 组合优化 | Portfolio Optimization | 在约束下选择最优资产权重 | | 均值-方差框架 | Mean-Variance Framework | Markowitz (1952) 的经典框架 | | 权重向量 | Weight Vector (w) | 各资产的持仓比例 | | 协方差矩阵 | Covariance Matrix (Σ) | 资产收益率的协方差关系矩阵 | | 预期收益向量 | Expected Return Vector (μ) | 各资产的预期年化收益率 | | 多元化 | Diversification | 持有多种相关性低的资产,降低整体风险 | | 有效前沿 | Efficient Frontier | 给定风险下收益最高的组合集合 | | 全局最小方差组合 | Global Minimum Variance Portfolio (GMV) | 有效前沿的左端点,风险最低 | | 切线组合 | Tangency Portfolio | 资本市场线与有效前沿的切点,即最大夏普组合 | | 资本市场线 | Capital Market Line (CML) | 从无风险利率到切线组合并延伸的直线 | | 最大夏普组合 | Maximum Sharpe Portfolio | 夏普比率最高的组合 | | 无风险利率 | Risk-Free Rate (Rf) | 国债等无风险资产的收益率 | | 夏普比率 | Sharpe Ratio | (收益-无风险利率) / 波动率,衡量风险调整后收益 | | Calmar 比率 | Calmar Ratio | 年化收益 / 最大回撤,衡量下行风险调整后收益 | | 最大回撤 | Maximum Drawdown (MDD) | 历史上从高点到低点的最大跌幅 | | 样本协方差 | Sample Covariance | 用历史数据直接计算的协方差矩阵 | | 条件数 | Condition Number | 矩阵最大特征值/最小特征值之比,衡量矩阵"病态"程度 | | Ledoit-Wolf 收缩 | Ledoit-Wolf Shrinkage | 将样本协方差向结构化目标收缩,减少估计误差 | | 收缩系数 | Shrinkage Coefficient (α) | Ledoit-Wolf 中收缩强度的参数,由数据自动决定 | | 风险平价 | Risk Parity | 每只资产对组合总风险贡献相等的配置方法 | | 边际风险贡献 | Marginal Risk Contribution (MRC) | 增加该资产权重时组合波动率的变化率 | | 风险贡献 | Risk Contribution (RC) | 某资产对组合总风险的绝对贡献量 | | Black-Litterman | Black-Litterman (BL) | 贝叶斯框架,融合市场均衡先验与投资者观点 | | 先验 | Prior | 贝叶斯框架中引入观测数据之前的信念 | | 后验 | Posterior | 贝叶斯更新后,融合先验与观测的新信念 | | 观点矩阵 | View Matrix (P) | 表达投资者观点的矩阵,K观点 × N资产 | | 观点收益向量 | View Returns Vector (Q) | 各观点的预期收益 | | 观点不确定性矩阵 | View Uncertainty Matrix (Ω) | 对角矩阵,表达对各观点的置信度 | | 市场均衡隐含收益 | Market Equilibrium Implied Returns (Π) | CAPM均衡下,对应市值加权组合的隐含预期收益 | | 风险厌恶系数 | Risk Aversion Coefficient (δ) | 衡量投资者对风险-收益权衡的偏好参数 | | 绝对观点 | Absolute View | 对某资产预期收益的绝对判断(如"S01 将涨 5%")| | 相对观点 | Relative View | 对两资产相对表现的判断(如"A 比 B 多赚 3%")| | 全投资约束 | Full Investment Constraint | Σw_i = 1,所有资金都投入 | | 多头约束 | Long-Only Constraint | w_i ≥ 0,不允许卖空 | | 权重上限 | Weight Upper Bound | 单只资产的最大持仓比例限制 | | 行业权重约束 | Sector Weight Constraint | 限制某一行业的总持仓比例范围 | | 换手率约束 | Turnover Constraint | 限制新旧权重变化总量,控制交易成本 | | 换手率 | Turnover | Σ|w_new - w_old|,每次调仓时权重变动的总量 | | 前视偏差 | Look-Ahead Bias | 回测中错误地使用了未来才能获得的数据 | | 滚动回测 | Rolling / Walk-Forward Backtest | 用历史窗口估计参数,样本外验证的正确回测方式 | | SLSQP | Sequential Least Squares Programming | 序列最小二乘规划法,scipy 中常用的约束优化算法 | | 过拟合 | Overfitting | 模型过度拟合历史数据,样本外表现大幅下降 | | 角点解 | Corner Solution | 优化结果极度集中在少数资产,非分散化的极端解 | | 误差传导 | Error Propagation | 输入参数的微小误差被优化器放大后产生极端结果 | | 风险分散 | Risk Diversification | 通过多资产配置降低总组合风险的过程 | | 行业暴露 | Sector Exposure | 组合对某一行业的权重,影响风格风险 | --- *上一篇:[Alpha 因子研究](doc_04_alpha_factor.md)* --- ## 附录:系列文档导航 | 篇 | 文件 | 文档 | 核心内容 | |----|------|------|----------| | 第 1 篇 | `quant_data_pipeline_demo.py` | `doc_01_data_pipeline.md` | 复权、收益率、缺失值、异常值、涨跌停 | | 第 2 篇 | `quant_strategy_backtest_demo.py` | `doc_02_strategy_backtest.md` | 技术指标、策略逻辑、向量化回测、绩效指标 | | 第 3 篇 | `quant_event_driven_backtest_demo.py` | `doc_03_event_driven_backtest.md` | 事件驱动架构、6大组件、成本模型 | | 第 4 篇 | `quant_alpha_factor_demo.py` | `doc_04_alpha_factor.md` | 因子构建、IC/ICIR、分层回测、因子合成、多空组合 | | **第 5 篇** | `quant_portfolio_optimization_demo.py` | `doc_05_portfolio_optimization.md` | MVO、有效前沿、MinVar、MaxSharpe、风险平价、BL、约束优化 |