Q-CodeQ-Code 打开工作台

低波动率选股

因子选股A股风险 低入门更新 2026-09-24#低波动#截面因子#防御

利用低波动异象,在截面选择历史波动率最低的个股构建防御型组合,承受牛市跑输以换取熊市防御。

策略目标

低波动异象是资产定价中最反直觉的现象之一:历史波动率最低的股票,长期风险调整后收益反而系统性高于高波动股票 [1]。解释机制包括彩票偏好(投资者追逐高波动的暴富想象)、机构 benchmark 约束(限制了低波资产的配置空间)[2]。本策略构建纯低波组合,定位是防御:接受牛市跑输,换取熊市回撤显著更小。

数据需求

数据 字段 频率 用途
量价 日收盘价(后复权) 日频 收益率与波动率
状态 ST 标记、上市日期、停牌标记 日频 基础过滤

只需要最基础的日线数据,无财务字段依赖,是数据成本最低的截面策略之一。

实现波动率定义

σi,t=std(ri,t−59,…,ri,t)×252\sigma_{i,t} = \mathrm{std}\left(r_{i,t-59}, \ldots, r_{i,t}\right) \times \sqrt{252}

其中 rir_i 为日收益率。截面取 σ\sigma 最低的 40 只。60 日窗口对状态切换的响应快于 252 日,但噪声更大,窗口参数需实测。

组合构建规则

季度调仓,持有 40 只等权。基础过滤:剔除 ST、上市不足一年、长期停牌与临近退市标的。设置排名缓冲(已持有标的仍在低波前 50% 内不强卖)。可选增强:与波动率目标仓位模块联动,在组合层面再做一次总敞口缩放。

风险与失效场景

  • 行业集中:低波股票天然聚集于银行、公用事业等防御行业,利率上行与风格切换时组合会整体承压,必须做行业集中度监控;
  • 牛市跑输:高波动成长行情中显著跑输基准,使用者必须接受这一定位;
  • 杠杆约束缺失:理论上低波异象部分源于投资者无法加杠杆,纯多头组合只能获得弱化版本;
  • 利率环境:低波高息资产对利率敏感;
  • 拥挤:低波策略产品化程度高,需监控因子衰减。

验证状态

待验证。需要完成:60/120/252 日窗口敏感性;行业中性化前后的收益差;与红利低波组合的重叠度;极端年份(快速下跌与快速反弹)的双向表现。本文不提供任何未实测的收益或回撤数字。

参考文献与延伸

[1] Ang, A., Hodrick, R. J., Xing, Y., & Zhang, X. (2006). The Cross-Section of Volatility and Expected Returns. Journal of Finance, 61(1).(低波动异象的奠基证据)

[2] Baker, M., Bradley, B., & Wurgler, J. (2011). Benchmarks as Limits to Arbitrage: Understanding the Low-Volatility Anomaly. Financial Analysts Journal, 67(1).(机构约束对异象的解释)

[3] Q-Code 量化策略工作台

策略逻辑结构

  1. 日行情 — 后复权日收盘价与收益率
  2. 基础过滤 — 剔除 ST、次新与长期停牌
  3. 波动率计算 — 60 日收益率标准差年化
  4. 低波组合 — 截面最低 40 只等权
  5. 行业集中监控 — 防御行业拥挤预警
  6. 季度再平衡 — 排名缓冲减少换手

AI 生成提示词

复制以下提示词,打开 Q-Code 工作台粘贴到 AI 对话框,即可自动生成该策略的 QMT 策略代码(单个完整 .py 文件,支持 QMT 回测与实盘)。

请生成一个 QMT 兼容的 A 股低波动率截面选股策略。股票池为参数注入的成分股清单,剔除 ST、上市不足一年与长期停牌标的,计算每只股票过去 60 日日收益率标准差并年化,截面取波动率最低的 40 只等权持有。季度调仓、排名缓冲减少换手,单票权重上限与组合数量写入 init,禁止未来函数,兼容回测与实盘分支,输出单个完整 Python 文件并包含详细日志。
用自然语言,生成你的 QMT 策略
注册即赠 200 积分,约可生成 5 次 · 支持 Kimi / GLM / DeepSeek
打开 Q-Code 工作台