量化研究 · 依瓦团队 · 18 次阅读

波动率因子与低波动异象:风险调整后的超额收益

波动率因子与低波动异象:如何理解风险调整后的表现

传统直觉认为承担更高风险应获得更高回报,但许多市场研究发现,历史波动较低的股票组合在部分时期能够取得更好的风险调整后表现,这被称为低波动异象。它不是“低波动必然上涨”,也不意味着组合没有回撤,而是一个需要在市值、行业、流动性和估值暴露之后重新检验的统计现象。

波动率要先定义清楚

常见指标是过去若干交易日收益率的标准差,也可使用下行波动率、特质波动率或高低价估计量。窗口长度、收益频率和最少有效观测数都会改变结果。停牌导致的零收益不能被直接解释为低风险;连续涨跌停也会让观测波动失真。因此要结合交易状态、成交活跃度和有效交易天数过滤样本。

低波动收益可能来自多种机制

行为层面上,投资者可能偏好具有“彩票特征”的高波动股票,推高其价格并降低未来收益。机构层面上,基准考核和杠杆限制可能让部分资金更偏好高贝塔资产。风险层面上,低波动股票往往具有更稳定的盈利、较成熟的业务或较强防御属性。不同机制对应不同失效条件,所以研究不能停留在一条分组收益曲线上。

区分总波动与特质波动

总波动同时包含市场、行业和公司自身波动。若目标是研究独立选股能力,可先用市场和行业模型解释收益,再对残差计算特质波动率。两种定义应分别检验。总波动组合可能天然偏向防御行业,特质波动则更关注公司层面的不确定性。中性化后效果减弱并不等于因子无效,而是说明原始收益的一部分来自系统性暴露。

组合构建要防止隐藏集中

直接买入最低波动的一组股票,可能集中在银行、公用事业或大市值公司。应设置行业偏离、单股权重、流动性和集中度约束,并报告相对基准的贝塔、规模、价值和质量暴露。还应比较等权、波动率倒数加权和受约束优化的差异。复杂优化对协方差估计误差很敏感,需要收缩估计、权重上限和换手约束。

用完整周期评估防御价值

低波动策略在快速上涨行情中可能落后,在风险释放阶段可能相对抗跌,但这些只是可能出现的特征。验证时应覆盖上涨、下跌、震荡、流动性收缩和风格快速切换阶段,分别观察绝对收益、相对收益、最大回撤、下行捕获率和恢复时间。不能只选择对低波动有利的市场区间。

低波动不是低风险承诺

历史波动低不代表未来风险小,财务造假、政策变化和突发事件都可能造成跳跃损失。波动率也无法完整描述流动性风险、信用风险和尾部风险。因此实际使用时应与基本面质量、流动性、估值和事件风险指标结合,并设置组合层面的止损、暴露和压力测试机制。

一套可复核的研究流程

无论研究哪类因子,第一步都不是看收益曲线,而是固定研究口径。样本范围要写清是否包含北交所、ST、上市未满一定交易日的股票;价格要说明采用前复权、后复权还是不复权;财务数据必须按公告日对齐,不能把后来披露的数据提前放进历史截面。停牌、涨跌停、退市和交易状态也要进入可交易性判断。只有这些规则在研究开始前被固定,后续结果才具备可重复性。

第二步是把数据质量检查放在因子计算之前。研究者应检查主键是否重复、交易日是否连续、价格与成交量是否存在异常值、行业分类是否发生历史变更、财务字段是否存在单位变化。缺失值不能简单全部填零:有些缺失代表公司不适用该指标,有些缺失来自披露延迟,还有些是数据源问题。三种情况的经济含义不同,处理方式也应不同。

第三步是建立时间切片严格的验证框架。可采用滚动训练、样本外验证和多市场阶段检验,避免只在完整历史上反复调整参数。每次实验都应保存数据版本、因子公式、过滤条件、调仓规则、成本假设和代码版本。研究结论不应只报告年化收益,还应同时报告最大回撤、换手率、覆盖率、分组单调性、IC分布、不同年份表现以及对行业和市值暴露的敏感度。

第四步是让结果接受反证。可以改变股票池、延迟一个交易日执行、提高交易成本、缩短或延长样本区间、排除极端行情,再观察结论是否仍然成立。如果一个结论只在单一参数、单一时间段或少数股票上成立,它更可能是偶然拟合,而不是稳定规律。对不显著或失效的结果也应完整记录,因为失败实验能够防止团队重复踩坑。

从研究结论到实际使用

研究结果进入组合之前,应先以小规模、低频率和可回滚方式观察。线上计算需要监控数据到达时间、因子覆盖率、截面分布漂移和组合暴露;出现异常时应能追溯到具体数据批次和公式版本。策略容量、成交约束、资金规模和风险预算会改变理论信号的实际价值,因此不能把研究收益直接等同于可实现收益。

本文用于说明量化研究方法,不构成个股推荐、收益承诺或投资建议。因子表现会随市场结构、参与者行为和交易制度变化而变化。真正可靠的做法,是保留证据链、持续复核假设,并由使用者结合自身目标、风险承受能力和合规要求独立判断。

波动率与风险调整指标

设股票 i 的日收益为 r(i,t),过去 L 日实现波动率为:

Vol_L(i,t) = sqrt(252) · std[r(i,t-L+1), ..., r(i,t)]
LowVolFactor(i,t) = -Vol_L(i,t)

只关心下跌风险时,可计算下行波动率;剥离市场与行业后,残差的标准差可作为特质波动率:

r(i,t) = α_i + β_i·r_market(t) + Σγ_(i,k)·r_industry,k(t) + ε(i,t)
IdioVol(i,t) = std[ε(i,t-L+1), ..., ε(i,t)]

评价不能只看收益,应同时使用夏普、最大回撤和下行捕获率:

Sharpe = sqrt(252)·mean(Rp-Rf)/std(Rp-Rf)
MaxDrawdown = max_t [1 - NAV(t)/max_(s≤t) NAV(s)]

数据与实操

使用复权日收益、交易状态、行业、市值和成交额,分别计算20日与60日总波动率、下行波动率和特质波动率。按月分五组,低波动组为第一组,同时构造高减低或低减高组合时明确方向。先展示未经控制的结果,再加入行业、市值和流动性约束,比较因子收益有多少来自风格暴露。实操中设置单股与行业上限,并测试市场快速上涨、急跌和震荡三个阶段。最后增加跳跃风险检查:若历史波动很低但近期公告、停牌或成交萎缩,应标记而不是机械纳入。

IWA依瓦AI量化 —— 金融垂直人工智能平台,覆盖数据、大模型、智能Agent、交易终端全栈能力。

免费注册 更多资讯