V3 : 成长腿 —— 权重配比敏感性分析

窗口 2018-01 ~ 2026-09(105 个月)· 全部因子 point-in-time · 生成于 2026-10-07 10:30:35
为什么做这个:改成严谨口径后,2018-2026 年化 —— 成长腿 19.91%、V3 腿只有 6.99%、沪深300 0.89%。混合 12.09% 的绝大部分来自只占 30% 的成长仓,这与「V3 做 70% 稳健底仓」的初衷已经背离。
做法:V3 权重从 0% 扫到 100%(步长 5%),每月按目标权重再平衡,两腿都用同一套 point-in-time 数据与指标引擎(hybrid_pit_core.py,与主回测同源)。另给总收益(分红再投)与价格收益两个口径。

一、直接答案:三种配比

总收益口径(分红再投,代表真实到手)

V3 : 成长复合年化年化波动夏普最大回撤累计收益月胜率剔除最好3月后
70 : 30(现行)+12.09%19.89%0.50724.96%+171.48%55.24%+7.46%
50 : 50+14.94%21.48%0.60325.40%+238.24%59.05%+9.82%
30 : 70+17.32%25.01%0.61326.59%+304.47%61.90%+11.12%
100 : 0 (纯V3)+6.99%21.94%0.22724.64%+80.60%49.52%—
0 : 100 (纯成长)+19.91%32.49%0.55138.20%+389.85%60.95%—
沪深300+0.89%18.16%-0.06139.92%+8.11%51.43%—
波动/夏普口径:月度收益标准差 × √12;夏普 = (年化 − 2% 无风险) ÷ 年化波动。
分红怎么处理的:每月复权收益用了两版本 —— 价格收益 price_r = P(t)·(1+k)/P(t−1)−1(k 为送转比例,钱手法:送转算进去、现金分红剔除,与普通价格指数编制一致);总收益 total_r = P(t)·(1+k+dps/P(t−1))/P(t−1)−1,即除权月的现金分红 dps 按上月末收盘价折算成额外份额(dps / P(t−1) 股)买回同一只股票 —— 这就是「分红再投」。实例核验:浦发银行 2020-07,P(t−1)=10.58 → P(t)=10.36,每股派息 0.60,价格收益 −2.08%、总收益 +3.47%(差额 5.55pp = 0.60/10.58 折算的额外份额)。

价格收益口径(含送转、不含现金分红,与沪深300价格指数严格同口径)

V3 : 成长复合年化年化波动夏普最大回撤累计收益
70 : 30(现行)+9.00%20.02%0.35026.58%+112.55%
50 : 50+12.01%21.64%0.46226.85%+169.71%
30 : 70+14.55%25.20%0.49830.62%+228.27%
100 : 0 (纯V3)+3.70%22.04%0.07726.61%+37.37%
0 : 100 (纯成长)+17.42%32.72%0.47141.44%+307.75%
沪深300+0.89%18.16%-0.06139.92%+8.11%

二、效率前沿:多担多少波动,换多少年化

20.91%16.71%12.51%8.30%4.10%-0.11%17.16%20.43%23.69%26.96%30.22%33.49%年化波动率 →年化收益 →7:35:53:7V3 100%成长 100%沪深300总收益(分红再投)价格收益
两条线分别是总收益/价格收益口径,从右下(V3 100%)走到左上(成长 100%)。三个圆点是你要的三个配比。

三、夏普随 V3 权重怎么走

0.650.530.410.290.170.050%20%30%40%50%60%70%80%100%夏普平台区 25~45%(内部差 <0.01)7:35:53:7峰值 35% V3V3(稳健底仓)权重 →

读数

  • 总收益口径:7:3 夏普 0.507 → 5:5 0.603 → 3:7 0.613,峰值在 V3 = 35%(0.616)。
  • 但 30%/35%/40% 三点夏普只差 0.003,25%~45% 是一段几乎水平的平台,内部全部落在 0.606~0.616。
  • 价格口径同理:7:3 0.350 → 5:5 0.462 → 3:7 0.498,峰值在 25%。
  • 最陡的一段恰恰是 7:3 → 5:5:只多担 1.6pp 波动换 2.85pp 年化;再往下到 3:7,多担 3.5pp 波动只多换 2.4pp。

两腿关系

  • 相关性 corr(V3, 成长) = 0.216(价格口径 0.220)—— 极低,这正是 7:3 当年能压低波动的真正原因。
  • 纯 V3 波动 21.94%、纯成长 32.49%,组合在 70~75% V3 处触到最低波动 19.86%。
  • 所以 7:3 在「最小波动」这件事上确实接近最优,但它在夏普上明显偏离。

四、净值曲线(对数刻度)

1.0x2.0x3.0x4.0x2018-012019-012020-012021-012022-012023-012024-012025-012026-017:3 2.71x5:5 3.38x3:7 4.04x沪深300 1.08x

五、稳健性检验:结论换个窗口、换个口径还在吗

窗口 / 口径月数夏普最优 V3权重7:3 夏普5:5 夏普3:7 夏普三者最优
2018-01~2026-09 全窗口 total10535%0.5070.6030.6133:7
2018-01~2026-09 全窗口 price10525%0.3500.4620.4983:7
子样本A 2018-01~2022-06 total5440%0.6730.7910.7963:7
子样本A 2018-01~2022-06 price5430%0.5550.7070.7443:7
子样本B 2022-07~2026-09 total5115%0.4190.6020.7243:7
子样本B 2022-07~2026-09 price515%0.1810.3220.4333:7
注:V3 与成长的选股逻辑完全不依赖权重,所以两腿各自的月度收益序列在不同子样本里完全相同,子样本只按月切分,不存在二次拟合。
稳健的部分:6 个 窗口×口径 组合里,7:3 一次都没赢过;最优权重落在 V3 = 5%~40% 区间。「V3 权重应低于一半」这个方向是稳的。
不稳的部分:最优权重本身漂移很大(全窗口 35% → 子样本A 40% → 子样本B 15%;价格口径全窗口 25% → 子样本B 5%)。这说明「精确最优」不可信,不应该去追那个峰值。真正稳健的判断只有一句:把 V3 从 70% 降到 50% 附近,收益/夏普的改善在任何子样本、任何口径下都成立,且代价很小。

六、反对意见(必须放在决策之前)

1. 「成长腿更好」在统计上并不显著。对月度收益差(成长 − V3)做 4000 次重抽的 block bootstrap(块长 6 个月):月均差 +1.199%(年化近似 +14.39pp),但 95% 置信区间为年化 [-6.97pp, +36.02pp],跨越 0;P(差 > 0) = 0.902,远不到常用的 0.95 门槛。换句话说:105 个月的样本量不足以证明成长腿真的优于 V3,点估计看着很美,置信区间宽得像个筐。任何建立在「成长更强」之上的权重调整,证据强度都是弱的。

2. 全部收益高度集中在极少数月份。剔除最好的 3 个月后:7:3 年化从 12.09% 掉到 7.46%,5:5 到 9.82%,3:7 到 11.12%;剔除最好的 10 个月,三种配比全部掉到 0% 附近或负值。这不是某个配比的特有问题,而是整条策略的收益都押在少数几个暴涨月上。权重怎么调都改变不了这个脆弱性,出问题的只会是「抓住那几个暴涨月」的运气。

3. 降低 V3 权重会牺牲年度胜率。滚动 12 个月正收益占比:7:3 84.0% > 5:5 81.9% > 3:7 80.9%(纯 V3 71.3%,纯成长 70.2%)。组合的价值主要来自低相关性,稀释 V3 就会削弱这个效果。

4. 集中度风险被平均收益率掩盖了。成长仓最多 3 只、等权,回测期内从未空仓(105 个月:99 个月满 3 只、5 个月 2 只、1 个月 1 只)。这意味着 3:7 时单只股票仓位约 23%,而 V3 是 7 只、每只约 4.3%。历史上月线打出那样的收益,不代表下一次单票暴雷时你扛得住。回测里没有出现「一只成长股 −40%」的样本,不代表实盘不会有。

5. 这是在给一条有问题的腿加码。此前 15/10/5 年对照回测已经证明:V3 的「盈利增长」因子近十年是净拖累 —— 5 年窗口 V3 双因子价格年化 +0.71% vs 纯高股息 +11.22%。如果嫌 V3 腿收益低,优先级更高的动作是修 V3 的因子(去掉或弱化盈利增长),而不是把钱挪到成长腿。换权重是在地基没修好的情况下挪家具。

七、完整网格

V3 权重年化波动夏普最大回撤累计Calmar扣月调仓成本后年化
0% : 100%+19.91%32.49%0.55138.20%+389.85%0.521+19.74%
5% : 95%+19.56%31.12%0.56436.27%+377.51%0.539+19.38%
10% : 90%+19.18%29.79%0.57734.30%+364.29%0.559+18.98%
15% : 85%+18.76%28.51%0.58832.30%+350.28%0.581+18.56%
20% : 80%+18.31%27.28%0.59830.28%+335.57%0.605+18.09%
25% : 75%+17.83%26.11%0.60628.33%+320.27%0.629+17.60%
30% : 70%+17.32%25.01%0.61326.59%+304.47%0.651+17.08%
35% : 65%+16.77%23.98%0.61625.86%+288.27%0.648+16.52%
40% : 60%+16.19%23.04%0.61625.70%+271.77%0.630+15.93%
45% : 55%+15.58%22.21%0.61225.55%+255.06%0.610+15.32%
50% : 50%+14.94%21.48%0.60325.40%+238.24%0.588+14.67%
55% : 45%+14.27%20.87%0.58825.27%+221.39%0.565+14.00%
60% : 40%+13.57%20.40%0.56725.16%+204.59%0.540+13.29%
65% : 35%+12.85%20.07%0.54025.05%+187.93%0.513+12.56%
70% : 30%+12.09%19.89%0.50724.96%+171.48%0.485+11.80%
75% : 25%+11.31%19.86%0.46924.87%+155.31%0.455+11.01%
80% : 20%+10.50%19.99%0.42524.80%+139.48%0.423+10.19%
85% : 15%+9.66%20.27%0.37824.74%+124.05%0.390+9.35%
90% : 10%+8.79%20.69%0.32824.70%+109.06%0.356+8.49%
95% : 5%+7.90%21.25%0.27824.66%+94.57%0.320+7.60%
100% : 0%+6.99%21.94%0.22724.64%+80.60%0.284+6.68%
交易成本假设:单边佣金 0.025% + 卖出印花税 0.05% = 每单位换手 0.10%;按每月持仓名单变化估算换手率,并计入月末漂移后的再平衡。扣成本后三种配比年化:7:3 +11.80%、5:5 +14.67%、3:7 +17.08%。

八、我的看法

不建议直接跳到 3:7。3:7 相比 5:5 只多换 2.4pp 年化,却要多担 3.5pp 波动、把单票仓位从 ~17% 抬到 ~23%、并牺牲 1pp 滚动年度胜率,而这 2.4pp 的边际收益在 bootstrap 上同样不显著。

如果一定要动,5:5 是唯一「证据够、代价小」的一档:波动只上升 1.6pp、回撤只上升 0.44pp,换来年化 +2.85pp、夏普从 0.507 提到 0.603(+19%),且在 6 个窗口×口径组合里全部优于 7:3。它还有个好处:不依赖任何精确最优点——它落在平台区中间,未来样本变化时的漂移容忍度比 3:7 高得多。

但更高优先级的动作是修 V3 而不是调权重。先在现有数据上把「纯高股息 vs V3双因子」换到混合口径里重跑一遍(把 V3 腿换成纯高股息腿,再走一遍同样的权重网格)。如果修好因子后 V3 腿自己就能到 12%~15% 年化,那么 7:3 可能压根不用改。这一步我可以做,等你一句话。

一句话总结:7:3 当年确实用低相关性把波动压到了最低(19.89%),这个设计没错,只是它的目标函数是「最小波动」,而你想要的是「高回报 + 低回撤」——这两个目标在样本内不是同一个最优点。5:5 是两个目标之间最划算的折中。

局限与免责