6.1 加权方法:等权、IC加权、风险平价

张开发
2026/4/15 1:28:04 15 分钟阅读

分享文章

6.1 加权方法:等权、IC加权、风险平价
6.1 加权方法等权、IC加权、风险平价一、引言从“因子打分”到“真金白银”经过前五章的奋战你已经拥有了若干个经过检验、纯化后的优质因子。现在面临最后的临门一脚如何将这些因子信号转化为具体的股票权重同一个因子信号采用不同的加权方式最终的策略收益、风险和换手率会有天壤之别。本节将深入对比三种主流的加权方法论朴素稳健的等权、追求效率的IC加权、以及控制风险的风险平价帮助你在A股的复杂环境中做出最优选择。二、基础设定横截面打分与权重映射在讨论具体加权方法前我们先建立统一的输入输出标准。假设在每个月末调仓时你已拥有候选股票池UtU_tUt​如剔除ST、上市不足一年、停牌股后的全A股。纯净因子得分si,ts_{i,t}si,t​经过行业中性化、风格正交化后的Z-Score值越大越好。我们的目标是找到一个映射函数fff将得分转化为权重wi,tf(si,t,Ωt) w_{i,t} f(s_{i,t}, \Omega_t)wi,t​f(si,t​,Ωt​)其中Ωt\Omega_tΩt​包含市值、流动性等其他约束信息。三、方法一等权加权 (Equal Weight)1. 核心逻辑与实现等权是最直观的方法它假设所有入选股票的预期收益和风险相同给予同等关注。操作选取因子得分最高的 TopNNN只股票每只分配1/N1/N1/N的权重。importpandasaspdimportnumpyasnpdefequal_weight_top_n(factor_scores,top_n50,min_scoreNone): 等权加权选取Top N高分股票等权分配 # 1. 分数筛选 (可选)ifmin_scoreisnotNone:candidatesfactor_scores[factor_scoresmin_score].dropna()else:candidatesfactor_scores.dropna()iflen(candidates)0:returnpd.Series()# 2. 排序并取Top Ntop_stockscandidates.nlargest(top_n)# 3. 等权分配weightspd.Series(1.0/len(top_stocks),indextop_stocks.index)returnweights## 进阶变种分层等权 (缓解头部股票过度集中)defstratified_equal_weight(factor_scores,n_groups5,top_group_weight0.5): 分层等权按因子分位数分组高分组权重更大组内等权 # 按因子值分组factor_scoresfactor_scores.dropna()groupspd.qcut(factor_scores,qn_groups,labelsFalse,duplicatesdrop)weightspd.Series(0.0,indexfactor_scores.index)# 分配组间权重 (如: 最高组占50%其余组平分剩下50%)group_weights{}group_weights[n_groups-1]top_group_weight# 最高分组remaining_weight1.0-top_group_weightforiinrange(n_groups-1):group_weights[i]remaining_weight/(n_groups-1)# 组内等权forgroup_id,group_weightingroup_weights.items():stocks_in_groupgroups[groupsgroup_id].indexiflen(stocks_in_group)0:weights.loc[stocks_in_group]group_weight/len(stocks_in_group)returnweights2. 优缺点与A股适用性维度评价原因分析收益潜力⭐⭐⭐无法充分利用因子信号的强弱差异尾部低分股稀释收益风险控制⭐⭐⭐⭐极度分散单股暴雷影响小但可能包含低流动性小票风险换手率⭐⭐⭐中等取决于因子得分的稳定性A股适配极高简单粗暴有效在小市值因子或初创策略验证期首选致命弱点容量限制持仓50-100只时还好大资金无法等权配置微盘股四、方法二IC加权 (Signal Strength Weighting)1. 核心逻辑与实现IC加权认为因子得分的高低直接对应预期收益的大小。它不再“平均主义”而是让高置信度的信号承载更多仓位追求收益最大化。操作将因子得分Z-Score通过Softmax或线性缩放转化为权重。defsignal_strength_weighting(factor_scores,methodsoftmax,temperature0.3,long_onlyTrue): IC加权根据因子得分强度分配权重 scores_cleanfactor_scores.dropna()iflen(scores_clean)0:returnpd.Series()ifmethodlinear:# 线性缩放w_i (s_i - min(s)) / sum(...)min_scorescores_clean.min()shiftedscores_clean-min_score1e-8# 避免负数和除零weightsshifted/shifted.sum()elifmethodsoftmax:# Softmax: w_i exp(s_i / T) / sum(exp(s_i / T))# 温度参数T控制分布的陡峭程度T越小高分股票权重越集中scaledscores_clean/temperature exp_scoresnp.exp(scaled-scaled.max())# 数值稳定性处理weightsexp_scores/exp_scores.sum()elifmethodrank_power:# 幂次加权按排名赋予非线性权重ranksscores_clean.rank(ascendingFalse)# 第一名 rank1power2.0# 幂次越大头部集中度越高weights(1.0/ranks)**power weightsweights/weights.sum()# 长仓约束iflong_only:weightsweights.clip(lower0)weightsweights/weights.sum()returnweights2. 温度参数 (TTT) 的调节艺术在Softmax中温度参数TTT是控制持仓集中度的关键旋钮T→0T \to 0T→0(低温)权重集中在得分最高的几只股票上。收益爆发力强但波动大换手极高。T→∞T \to \inftyT→∞(高温)权重趋于均匀分布。逼近等权稳健但平庸。A股实战建议TTT取值在 0.2−0.5之间较为适宜既能发挥因子选股能力又不会过度集中导致流动性危机。3. 优缺点对比维度评价原因分析收益潜力⭐⭐⭐⭐⭐充分利用信息让“好信号”下重注多空收益最高风险控制⭐⭐持仓集中易受单只股票业绩变脸或流动性冲击影响换手率⭐极高因子得分微小波动会导致权重剧烈调整A股适配中适合高流动性股票池如沪深300不适合小盘股致命弱点换手与冲击若不控制交易成本会吞噬大部分理论收益五、方法三风险平价 (Risk Parity / Volatility Targeting)1. 核心逻辑与实现前两种方法关注“收益”风险平价关注**“风险贡献”**。它的目标不是收益最大化而是让组合中每只股票或每份风险源对总风险的贡献相等。这在A股这种高波动市场尤为重要。操作根据历史波动率或预测风险反比分配权重。defrisk_parity_naive(volatility_estimates,factor_scoresNone,target_vol0.15): 朴素风险平价权重 ∝ 1 / 波动率 目标让每只股票对组合波动的贡献大致相等 # 如果未提供波动率使用因子得分的横截面波动作为代理ifvolatility_estimatesisNone:# 假设因子得分已经包含了风险信息如高分对应低风险# 或者简单使用统一值volatility_estimatespd.Series(1.0,indexfactor_scores.index)# 核心公式波动率越高的股票给的权重越低risk_weights1.0/volatility_estimates# 归一化weightsrisk_weights/risk_weights.sum()# 可选叠加因子信号 (Blended Approach)# 既考虑风险平衡又兼顾因子方向iffactor_scoresisnotNone:signal_weightssignal_strength_weighting(factor_scores,methodlinear)blended_weightsweights*signal_weights weightsblended_weights/blended_weights.sum()returnweightsdefheuristic_volatility_targeting(factor_scores,market_caps,vol_window20): 启发式波动率目标小市值高波动股票降权大市值低波动股票提权 # 假设已有历史波动率数据# 计算调整系数波动率越高调整系数越小# adj_coeff 1 / (volatility ^ k)# 简化为使用市值作为波动率的代理A股经验市值越小波动越大# 对大市值给予更高权重置信度对小市值降权cap_weightsnp.sqrt(market_caps)# 平方根作为平滑cap_weightscap_weights/cap_weights.sum()# 结合因子得分signal_wsignal_strength_weighting(factor_scores)final_wsignal_w*cap_weights final_wfinal_w/final_w.sum()returnfinal_w2. 优缺点对比维度评价原因分析收益潜力⭐⭐⭐牺牲部分进攻性换取更优的防守风险控制⭐⭐⭐⭐⭐极佳。自动避开高波动妖股组合回撤大幅降低换手率⭐⭐⭐⭐较低因为波动率估计相对稳定权重变化平滑A股适配极高完美契合A股“牛短熊长、波动剧烈”的特征生存能力最强致命弱点过度保守可能过度压制高弹性成长股在牛市初期跑输等权策略六、综合对比与实战决策矩阵1. 量化指标对比表 (基于A股历史回测假设)方法年化收益年化波动夏普比率最大回撤月度换手率等权 (Top 50)18.5%26.2%0.71-42.1%45%IC加权 (Softmax)21.3%29.8%0.73-47.5%85%风险平价16.2%20.1%0.81-31.6%35%(注风险平价在风险调整后收益上胜出)2. 什么时候选哪种A股实战指南你的情况推荐方法配置建议资金量 5000万等权 或 IC加权享受小资金的高弹性无需过度担心流动性资金量 1亿风险平价必须考虑冲击成本安全第一因子质量高 (IC0.05)IC加权 (T0.3)相信你的Alpha让强者恒强因子质量一般等权分散风险避免押注错误风控要求严 (如资管产品)风险平价为主配合少量IC加权增强收益牛市/进攻期IC加权加足马力熊市/震荡期风险平价活着比赚钱重要七、代码实战组合加权流水线最后我们将三者串联成一个完整的Pipeline供你直接调用。classWeightingPipeline:加权策略流水线def__init__(self,config):self.configconfigdefexecute(self,date,factor_scores,market_dataNone): 执行加权逻辑 methodself.config.get(weight_method,equal_weight)ifmethodequal_weight:top_nself.config.get(top_n,50)weightsequal_weight_top_n(factor_scores,top_ntop_n)elifmethodic_weighted:tempself.config.get(temperature,0.3)modeself.config.get(ic_mode,softmax)weightssignal_strength_weighting(factor_scores,methodmode,temperaturetemp)elifmethodrisk_parity:# 需要传入波动率或市值数据ifmarket_dataisNone:# 回退到等权weightsequal_weight_top_n(factor_scores,top_n50)else:volsmarket_data.get(volatility_20d,None)weightsrisk_parity_naive(vols,factor_scores)elifmethodblended:# 混合策略IC加权 风险预算ic_wsignal_strength_weighting(factor_scores)rp_wrisk_parity_naive(None,factor_scores)ifmarket_dataisNoneelserisk_parity_naive(market_data[volatility_20d])alphaself.config.get(blend_alpha,0.7)# IC权重占比weightsalpha*ic_w(1-alpha)*rp_w weightsweights/weights.sum()# 后处理市值过滤与归一化ifmarket_dataisnotNone:# 剔除微盘股 (市值 20亿)large_cap_maskmarket_data[market_cap]2e9weightsweights[large_cap_mask]weightsweights/weights.sum()returnweights本节总结等权是你的起跑线简单可靠。IC加权是你的加速器放大收益但也放大风险。风险平价是你的安全带在A股的颠簸路况中保护你不被甩下车。下一步确定了权重后我们还需要解决如何在真实市场中买卖。下一节《6.2 组合优化考虑换手、成本、约束下的均值-方差优化》将引入交易成本和实际约束让你的策略从“纸上谈兵”走向“沙场实战”。

更多文章