通达信公式复盘:波动率因子选股:别把“低波”当“没机会”

【风险提示】本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
我 2016 年做因子测试,发现波动率最低的那 20% 股票,三年累计收益居然跑赢了波动率最高的那 20%。当时以为是数据错了。后来查文献才发现:低波异象(Low Volatility Anomaly)是全球股市普遍存在的现象,越“无聊”的股票长期越赚钱。

一、原版源码拆解

网上最常见的写法:

VOLATILITY:=STD(C,60)/MA(C,60);
SELECT:VOLATILITY<0.02;

主要问题有:

① 计算窗口单一:只用 60 日标准差,但低波因子的有效性需要“长期低波”而非“近期低波”。一只票停牌两个月后复牌,60 日波动也很低,但这是假低波;

② 未区分上行/下行波动:上行波动(天天涨)和下行波动(天天跌)对投资者的体验完全不同,但 STD 函数一视同仁;

③ 绝对阈值无自适应:0.02 在牛市太低(全市场波动都>3%),在熊市太高(全市场波动都<1.5%),应改为分位数排名。

🔍 二、深度拆解:低波动率异象:越稳的股票长期回报越高,这是学术界的大发现

1. 逻辑死穴:低波异象的“行为金融”解释

为什么低波股票反而高回报?行为金融学解释:投资者系统性地“高估高波动股票的成长性”(彩票偏好),导致高波股被高估、未来回报低;同时“忽视低波动股票的稳健性”,导致低波股被低估、未来回报高。这不是免费的午餐,是市场定价错误的套利。


2. 函数陷阱:STD 的“停牌扭曲”

停牌超过 20 个交易日的股票,复牌后 60 日窗口内有大量“无交易”日(价格不变),STD 会被人为压低。公式会误判为“低波好票”,实际上是数据缺失。必须排除停牌天数过多的股票。


3. 视觉盲区:低波 ≠ 低回撤

一只股票日均波动 1%(很低),但遇到一次黑天鹅单日跌停(-10%),最大回撤可能高达 30%。低波因子衡量的是“日常波动”,不是“极端风险”。需要叠加最大回撤指标。

📊 三、数据回测:不同参数下的信号特征

以下为不同参数组合下的信号池规模与风格特征对比:

策略版本信号池规模风格特征说明
波动率<2%
(绝对阈值)
约 50-100 只牛市信号极少阈值不自适应
波动率分位
<20% (60日)
约 80-150 只自适应市场偏防御风格
低波+高ROE
+ 回撤可控
约 15-40 只质量低波策略夏普比最高

🔨 四、优化版源码(可直接复制)

{低波动率选股 · 工程优化版}
{参数区: 窗口:20,250,60}
{— 日收益率序列 —}
日收:=LN(C/REF(C,1));
{— 年化波动率 —}
日波:=STD(日收,窗口);年化波:=日波*SQRT(250);
{— 下行波动单独计算 —}
下行收:=IF(日收<0,日收,0);下行波:=STD(下行收,60);
{— 最大回撤约束 —}
高水位:=HHV(C,60);回撤:=C/高水位-1;
{— 综合选股 —}
XG:年化波<0.25 AND 下行波<0.02 AND 回撤>-0.15 AND 年化波>0.05;

五、这次改了什么?

无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等函数。

核心优化:
1. 年化波动率:日波动*√250 转为年化,跨市场可比; 2. 下行波动分离:只对负收益计算 STD,更精准衡量“真正的风险”; 3. 最大回撤约束:60 日回撤>-15%,排除正在经历大跌的票; 4. 最低波动门槛:年化波>5%,排除停牌/僵尸股的假低波。
【编者手记】 低波因子是少数被学术界和实盘同时验证有效的因子。它的核心逻辑不是“规避风险”,而是“市场定价错误”——高波股被高估、低波股被低估。但低波不等于无风险,2022 年很多低波白马股也跌了 30%+。低波因子适合做“底仓策略”,不适合做“进攻策略”。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160