上一篇《个人量化选股(六):差异化风控与退出机制:杠杆防守、反弹陷阱与高波移动止盈》分析了杠杆账户的 P0 强制止损、港 A 现货过滤短期微观噪声的季度内持有纪律,以及高波动标的的动态跟踪止盈规则。

当候选标的通过趋势门槛、截面精排与双线缓冲区的筛选,并完成退出规则设定后,量化选股流水线进入了关键的最终环节:

入选标的的资产配置权重与资金规模如何科学求解?

许多量化研究者在因子挖掘与信号排序上投入大量资源,但在资金配置环节往往采用简化的等金额加权($1/N$ 等权重),例如入选 4 只标的即机械分配各 25% 的资金份额。这种看似均衡的名义等权配置,在多资产组合的微观方差结构中会导致风险暴露的严重失衡。

个人量化选股(七):波动率倒数配仓与资金构建
个人量化选股(七):波动率倒数配仓与资金构建


一、等金额不等于等风险:边际风险贡献度的方差失衡

在真实的股票截面中,不同标的的微观波动特征存在天然的巨大差距。

假设系统在美股市场选出了 4 只合格股票:

  • 2 只处于右侧爆发期的高弹性科技股(如年化波动率 55.3% 的标的 A 与年化波动率 48.9% 的标的 B);
  • 2 只走势平稳的大盘稳健股(如年化波动率 18.5% 的可口可乐与年化波动率 17.2% 的苹果)。

如果每只股票各分配 25% 的资金,我们根据欧拉风险分解定理(Euler’s Risk Budgeting)计算组合整体的边际风险贡献(Marginal Contribution to Risk, MCTR):

投资组合的年化总方差为 $\sigma_p^2 = \mathbf{w}^T \mathbf{\Sigma} \mathbf{w}$,资产 $i$ 对组合总方差的绝对风险贡献(Variance Contribution)为:

$$\text{TRC}_i = w_i \frac{(\mathbf{\Sigma} \mathbf{w})_i}{\sigma_p}$$

各资产的风险方差贡献比例(Percentage Risk Contribution)为:

$$%RC_i = \frac{w_i (\mathbf{\Sigma} \mathbf{w})_i}{\sigma_p^2}$$

在资产间相关性较弱的常规截面中,该比例近似正比于 $w_i^2 \sigma_i^2$。在等金额配置下($w_i = 1/N$),风险方差贡献度正比于波动率的平方($\sigma_i^2$)。

以这 4 只标的的真实协方差矩阵测算,结果如下:

等权重陷阱 vs 波动率倒数配仓:资金权重与边际风险贡献度实测对比
等权重陷阱 vs 波动率倒数配仓:资金权重与边际风险贡献度实测对比

如上图左侧所示,在等金额配置(权重各为 25.0%)下:

  • 标的 A(年化波动率 55.3%)单标的解释了组合 46.8% 的方差贡献;
  • 标的 B(年化波动率 48.9%)解释了组合 39.9% 的方差贡献;
  • 两只高波动标的合计贡献了组合 86.7% 的总方差风险;
  • 稳健标的 C(年化波动率 18.5%)的风险贡献仅为 6.8%;
  • 稳健标的 D(年化波动率 17.2%)的风险贡献仅为 6.5%。

尽管将 50.0% 的名义资本配置于低波动资产,但在截面方差结构中,组合 86.7% 的净值收益率方差完全由高波动资产主导。低波动资产不仅未能有效平滑组合整体波动率,反而占用了大量可用资金。当高波动资产遭遇深度回调时,组合净值将承受非对称的单边大幅下行。

名义资本均等,并不代表风险贡献均等。


二、波动率倒数加权算法与三道现实物理防线

为消除高波动标的对组合方差的过度主导,实现各标的对组合风险贡献的相对均衡,系统采用波动率倒数配仓(Inverse Volatility Sizing):

$$w_{raw, i} \propto \frac{1}{\sigma_{i, 20d}}$$

其中 $\sigma_{i, 20d}$ 为标的过去 20 个交易日前复权对数收益率的年化标准差:

$$\sigma_{i, 20d} = \sqrt{252} \times \sqrt{\frac{1}{19}\sum_{t=1}^{20}\left(r_t - \bar{r}\right)^2}$$

选定 20 个交易日(约 1 个自然月),兼顾了近期微观波动率状态跃迁的灵敏度,同时避免了 200 日长期波动率的滞后钝化。

如上图右侧所示,按波动率倒数重新分配后:

  • 标的 A 资金权重从 25.0% 压缩至 13.8%;
  • 标的 B 资金权重从 25.0% 压缩至 15.2%;
  • 稳健标的 C 资金权重从 25.0% 提升至 35.0%;
  • 稳健标的 D 资金权重从 25.0% 提升至 36.0%;
  • 4 只股票的风险贡献度平稳收敛至 23.5% 到 26.8% 之间,组合年化波动率直接从 25.4% 降低至 17.4%(压缩 8.0 个百分点)。

在实盘交易中,纯数学上的波动率倒数无法直接投入运行。现实物理世界存在三道工程约束,系统设置了专门的防线予以封堵:

波动率倒数配仓与三道资金物理防线全景架构
波动率倒数配仓与三道资金物理防线全景架构

1. 单资产 35% 权重硬上限与溢出再分配迭代

如果候选池中出现公用事业等低波动品种(例如长江电力年化波幅仅 12.0%),纯算倒数可能分配给它 45% 甚至 50% 的极高仓位。

任何单一个股都存在财务造假、行业监管黑天鹅或突发停牌的特质风险。系统设置单资产最大权重为 35.0%(max_asset_weight = 35.0)。

一旦某只股票无约束权重超过 35.0%,系统将其强制压回 35.0%,并将多出的溢出资金按比例再分配给其他未达上限的合格标的。这一过程通过迭代循环完成,直至全部标的收敛满足约束。

2. 10% 战略现金垫预留

全仓 100% 满额配置而缺乏资金冗余,在实盘交易中具有显著的操作风险。多币种日间汇率波动、融资利息扣划、调仓冲击成本以及临时资金冻结,均可能导致账户被动产生非预期透支。

系统在股票配比外部常态化预留 10.0% 的战略现金缓冲垫。各市场股票资产整体按 90% 预算进行折算分配,保留底线流动性。

3. 港 A 股整手交易物理约束与 1.5 倍超额拦截

美股市场支持碎股(Fractional Shares)交易,可以精确买入 0.1 股;但港股和 A 股是严格的整手市场:

  • A 股主板通常为 100 股一手,科创板单笔最低 200 股;
  • 港股各标的整手股数差异极大,从 100 股、500 股到 2,000 股、5,000 股不等。

在数十万元规模的个人量化账户中,单市场卫星组合的可用预算通常在 4.5 万元至 5.0 万元。若某只高单价港股的最小交易单位(一手)名义金额达 3.8 万元,而波动率倒数分配的目标预算仅为 1.5 万元,单笔最小委托将占用该市场 85% 的可用资金,导致资产配置比例严重失真。

系统在测算目标权重的过程中,强制执行最小交易单位名义金额与目标预算的校验:当单手交易金额超过目标预算的 1.5 倍(lot_cost > 1.5 * target_budget)时,系统触发预算超额拦截,提示人工介入审核或依截面得分顺延配置候补标的。

系统底层向量化配仓函数的完整生产代码如下:

def apply_inverse_vol_weights(
    assessments: list[MicroRiskAssessment],
    max_asset_weight: float = 35.0,
    is_single_query: bool = False,
    max_weight_cap: float | None = None,
) -> list[MicroRiskAssessment]:
    """对多头留存仓位(非 P0 标的)按 20 日历史波动率倒数加权,计算目标权重与差额。"""
    if max_weight_cap is not None:
        max_asset_weight = max_weight_cap

    # 单标的查询保护:避免单只标的查询时误输出 100% 集中度持仓
    if is_single_query or len(assessments) <= 1:
        for a in assessments:
            a.target_weight, a.weight_diff = None, None
        return assessments

    # 过滤数据失效与 P0 破位清仓标的
    eligible = [
        a for a in assessments
        if not a.is_stale
        and a.alert_level not in (RiskAlertLevel.P0_RED, RiskAlertLevel.P0_PENDING, RiskAlertLevel.STALE)
        and a.state in (MarketRegimeState.STATE_1_ADVANCING, MarketRegimeState.STATE_2_DISTRIBUTION)
        and a.ann_vol_20d is not None and a.ann_vol_20d > 0
    ]

    if not eligible:
        for a in assessments:
            a.target_weight = 0.0
            a.weight_diff = (0.0 - a.current_weight) if a.current_weight is not None else None
        return assessments

    # 1. 基础波动率倒数归一化
    inv_vols = [1.0 / (a.ann_vol_20d / 100.0) for a in eligible]
    sum_inv_vol = sum(inv_vols)
    raw_weights = {a.symbol: (iv / sum_inv_vol) * 100.0 for a, iv in zip(eligible, inv_vols)}

    # 2. 单资产上限封顶(默认 35%)与溢出循环再分配
    capped: dict[str, float] = {}
    uncapped = set(raw_weights.keys())

    while True:
        excess = 0.0
        newly_capped = []
        for s in list(uncapped):
            if raw_weights[s] > max_asset_weight:
                excess += raw_weights[s] - max_asset_weight
                capped[s] = max_asset_weight
                newly_capped.append(s)
                uncapped.remove(s)
        if not newly_capped or not uncapped or excess <= 1e-4:
            break
        # 将溢出额度按比例再分配给未达上限的标的
        uncapped_sum = sum(raw_weights[s] for s in uncapped)
        if uncapped_sum > 0:
            for s in uncapped:
                raw_weights[s] += excess * (raw_weights[s] / uncapped_sum)
        else:
            break

    eligible_symbols = {a.symbol for a in eligible}
    for a in assessments:
        if a.symbol in eligible_symbols:
            w = capped.get(a.symbol, min(raw_weights.get(a.symbol, 0.0), max_asset_weight))
            a.target_weight = round(w, 1)
        else:
            a.target_weight = 0.0
        if a.current_weight is not None:
            a.weight_diff = round(a.target_weight - a.current_weight, 1)

    return assessments

三、全周期回测实证:等权重 vs 纯倒数 vs 35%上限+10%现金垫

为了检验不同资金构建方案对长期复利与极端下行风险的影响,我们使用 2021 年 1 月至 2026 年 10 月跨越 5 年多的中外多市场真实日 K 数据,运行了全周期的策略对比回测。

回测对比了三种资金构建规则:

  1. 等金额配置(1/N Equal Weight):所有合格标的分配完全相同的资金权重;
  2. 纯波动率倒数(Raw Inverse Volatility):不设单票上限,按 $1/\sigma$ 完全归一化;
  3. 约束优化版(35% Cap + 10% Cash Cushion):单票 35% 封顶,全组合留存 10% 现金垫。

回测收益率、波动率、最大回撤与风险调整后指标对比见下图:

多市场组合全周期回测实证 (2021-2026):等权重 vs 纯倒数 vs 35%上限+10%现金垫
多市场组合全周期回测实证 (2021-2026):等权重 vs 纯倒数 vs 35%上限+10%现金垫

核心实测绩效数据汇总如下:

配置方案 年化复合收益 (CAGR) 年化波动率 最大回撤 (MDD) 夏普比率 (Sharpe) 卡玛比率 (Calmar)
方案 1:等金额配置 (1/N) +10.8% 22.4% -29.8% 0.48 0.36
方案 2:纯波动率倒数 +12.6% 15.8% -21.4% 0.80 0.59
方案 3:35%封顶 + 10%现金垫 +13.9% 14.1% -16.2% 0.99 0.86

实测数据显示出几个规律:

等金额配置在 2022 年美联储加息周期的单边下行中,最大回撤深达 -29.8%。高波动标的在下行期大幅拉长了回撤深度,年化波动率高达 22.4%,拖累长期几何复合增速降至 +10.8%。

纯波动率倒数配仓将年化波动率压缩至 15.8%,最大回撤收敛至 -21.4%,夏普比率从 0.48 提升到 0.80。

加入了 35% 封顶与 10% 现金垫的优化方案表现最优:

  • 最大回撤被严格压制在 -16.2%(相比等金额减少了 13.6 个百分点);
  • 年化波动率降至 14.1%;
  • 卡玛比率从 0.36 提升至 0.86(提升超过 138%);
  • 最终年化复合收益提高到 +13.9%。

投资组合有效抑制了极端回撤风险,避免了深度净值回撤所需的长期修复周期,显著改善了长期的几何复合增长率。


四、2026 年 10 月最新实盘截面配仓推演与整手物理约束检测

结合 2026 年 10 月 23 日的最新实盘收盘快照(总净资产 429,353.22 CNY,其中雪球 373,636.23 CNY,富途 55,716.99 CNY),系统对现有持仓与新晋候选标的执行了客观运算推演。

2026年10月最新实盘截面配仓推演与整手物理约束检测 (Lot Size Audit)
2026年10月最新实盘截面配仓推演与整手物理约束检测 (Lot Size Audit)

1. 存量持仓标的的目标权重诊断

如上图左侧所示,系统监控输出了各持仓标的的最新 20 日年化波动率与权重偏离情况:

标的代号 中文名称 20日年化波幅 当前实际权重 波动率倒数目标权重 调仓差额 状态机研判指引
US.KO 可口可乐 18.5% 20.3% 11.4% -8.9% 实际权重偏重,等待月末窗口按目标权重调低
US.V Visa 18.1% 14.4% 11.6% -2.8% 适度超配,调仓日小幅再平衡
US.MRK 默沙东 30.0% 13.7% 7.0% -6.7% 波动率由 16% 扩大至 30.0%,目标配额下调至 7.0%
US.XOM 埃克森美孚 17.3% 11.5% 12.2% +0.7% 权重匹配良好,顺势持有
US.AAPL 苹果 17.2% 11.1% 12.2% +1.1% 权重匹配良好,顺势持有
JP.9101 日本邮船 25.1% 6.4% 8.4% +2.0% 处于 Top 8 缓冲区内,调仓日补充配额
JP.6501 日立 27.3% 4.9% 7.7% +2.8% 处于 Top 8 缓冲区内,调仓日补充配额
JP.8001 伊藤忠商事 22.3% 2.0% 9.4% +7.4% 欠配明显,调仓日增加配仓
JP.8306 三菱日联金融 37.0% 2.9% 5.7% +2.8% 高波 37.0% 跌破 MA50,触发移动止盈锁定浮盈
US.NVDA 英伟达 29.6% 5.1% 7.1% +2.0% 跌破 50 日线警戒,不加仓
HK.00857 中国石油股份 28.3% 3.4% 7.4% +4.0% 跌破 50 日线警戒,港股季度内不加仓
JP.8729 Sony Financial 22.9% 0.3% 0.0% -0.3% P0 强制止损:跌破年线 1.5% 满 3 天,市价清仓还债

系统输出的调仓指令具备明确的量化执行规则:

  • 长期持仓因资本利得产生的权重偏离(例如可口可乐权重上升至 20.3%),在定期调仓窗口执行再平衡;
  • 触发 P0 破位离场条件的 Sony 金融(JP.8729),目标权重即刻置为 0.0%,次日开盘执行平仓;
  • 20 日年化波动率由 16% 上升至 30.0% 的默沙东,系统自动下调目标权重,动态约束微观波动暴露。

2. 候选标的的一手金额与整手超额拦截

在调仓日买入新标的时,港股与 A 股卫星仓位各自对应约 4.5 万元人民币预算,每个市场选 3 只股票,平均每只股票的目标预算为 1.50 万元。

如上图右侧所示,系统对港 A 股候选池进行了整手资金压力排查:

  1. 联想集团 (HK.00992):

    • 现价 22.64 HKD,每手 2,000 股;
    • 买入一手所需资金折合人民币达 38,600 元;
    • 一手金额占单市场总预算(4.5 万元)的 85.8%,是单标的目标预算(1.5 万元)的 2.57 倍;
    • 系统立刻触发红色超额拦截警报。如果机械执行买入,单只个股将直接占满该市场全部流动性,资金纪律完全失效。系统提示必须顺延候补。
  2. 顺延候补标的评估:

    • 港股候补第 1 名 药明康德 (HK.02359):每手 100 股,一手约 15,870 元,为单标的目标预算的 1.06 倍,整手适配良好;
    • 港股候补第 2 名 中国银行 (HK.03988):每手 1,000 股,一手仅 5,085 元,为目标预算的 0.34 倍,可以根据波动率分配从容买入 2 到 3 手;
    • A 股首选 生益科技 (SH.600183):每手 100 股,一手 11,081 元,为目标预算的 0.74 倍,适配良好;
    • A 股候补 长江电力 (SH.600900):每手 100 股,一手仅 2,945 元,为目标预算的 0.20 倍,门槛极低。

通过这一层整手约束的物理过滤,选股系统彻底脱离了纸面回测的理想化假设,保证了实盘账户的执行可行性。


选股全流程总结:七层量化流水线的闭环运转

至此,《个人量化选股》系列的七层量化流水线全部构建完成:

个人量化选股:七层量化流水线全景闭环体系
个人量化选股:七层量化流水线全景闭环体系

这套体系的核心逻辑为:

在入场端不博取未经验证的超额溢价,而在持仓全生命周期通过客观数据与物理防线约束尾部风险。

日常运行中,系统通过本地命令行工具自动化执行监控:

  • 每个交易日盘后运行 cang sync 同步最新持仓与行情;
  • 运行 cang positions 查看各市场聚合净值;
  • 运行 cang monitor 自动输出宏观红绿灯、四态状态机、止损触发点、目标配仓权重与调仓动作清单。

系统排除了情绪化主观交易与盘感臆断,每一个决策节点均依赖确定性的数据输入、统计实证检验与边界约束规则,实现系统化闭环运转。


选股体系与延伸阅读

本文所属的完整量化选股架构、全景行业雷达与配套策略代码,均整理在 QuantFull:

个人量化选股实战系列:

流动性与交易实务专题:

策略库与投研知识资产:


关于作者