
波动率极大值幅度
在兴业证券的高频系列研究中,他们的首席分析师郑兆磊老师聊过收益率分布中的alpha,也聊过成交量分布中的alpha,但是没有聊过波动率分布中的alpha。
所以,笔者想不自量力一下,来聊一聊波动率分布中的alpha。
如果笔者没估计错的话,这个专题应该不止一个因子。
本文,先来聊一聊波动率极大值幅度这个因子。该因子参考了郑老师的研报(收益率极大值幅度:一个我差点错过的超级多头因子!),也参考了曹春晓老师的研报(灾后重建是真的不行,不过更优波动率还是可以的)。
计算步骤和代码
这里,笔者选择的波动率是曹春晓老师提出的更优波动率,而不是传统的波动率。
因为,用传统的波动率计算出来的这个因子会出现很多的nan值,除非将极值的门限放宽。
1
计算步骤
第一步,计算5分钟的更优波动率。即,olhc一共20个价格的标准差/均值。
第二步,计算30分钟的更优波动率。
第三步,计算5分钟更有波动率的95%分位数。
第四步,计算30分钟更优波动率超过其5分钟更优波动率50%分位数的均值,并除以这个95%分位数。
2
代码
def process_single_day(self, idx):file_name = self.files[idx]date_str = file_name.split('.')[0]cur = pd.to_datetime(date_str) + timedelta(hours=15)file_name = self.files[idx]full_path = os.path.join(self.file_pth, file_name)data = BaseDataLoader.load_data(full_path, fields=['close', 'open', 'high', 'low'])prefer_sigma_5 = []prefer_sigma_30 = []for i in range(5, len(data.data)):tmp_data = data.data[i-5:i, :, :].reshape(-1, len(data.codes))tmp_sigma = np.nanstd(tmp_data, axis=0) / np.nanmean(tmp_data, axis=0)prefer_sigma_5.append(tmp_sigma)if i >= 30:tmp_data = data.data[i - 30:i, :, :].reshape(-1, len(data.codes))tmp_sigma = np.nanstd(tmp_data, axis=0) / np.nanmean(tmp_data, axis=0)prefer_sigma_30.append(tmp_sigma)prefer_sigma_5 = pd.DataFrame(prefer_sigma_5, columns=data.codes)prefer_sigma_30 = pd.DataFrame(prefer_sigma_30, columns=data.codes)q = prefer_sigma_5.quantile(0.95)flag = prefer_sigma_30 > qprefer_sigma_30 = (prefer_sigma_30 * np.where(flag, 1.0, np.nan)).mean() / qres = prefer_sigma_30.to_frame()res.columns = ['prefer_sigma']res['datetime'] = cur
前7行,读取数据。
第8-19行,计算每个标的5分钟和30分钟的更优波动率。这里需要注意的是,data.data是一个三维的numpy数组,第一位是时间,第二维是字段,第三维是标的。具体可以参考基础数据类BaseDataLoader。
第20行,计算5分钟更优波动率的95%分位数。(值得一提的是,如果使用的是传统波动率因子,这里降为80%分位数还有一些标的的因子值为nan)
第21-22行,计算波动率的极大值幅度这个因子。

因子评价
在郑老师的收益率极大值幅度中,是用过去n个交易日均值来对其进行低频化的。
因此,这里笔者也是使用的均值这种方式来低频化的。
01
IC分析






这个因子的IC还不错,至少比收益率极大值幅度的IC绝对值要高出不少。
02
回归分析


03
换手率分析


04
收益分析


虽然,这个因子在IC上的表现好于收益率极大值幅度这个因子,但是分层回测就不行了。
该因子的分层回测没有单调性可言,红线和绿线的净值一直领先其他三组,直到2023年的第二季度才被蓝线超越。
所以,即使这个因子的IC表现不错,但是其分层回测的表现意味着它很真正的发挥作用。
最近,有热心读者希望笔者多介绍一些基础知识,而不只是复现因子。在这里,笔者做一个简单的回复。
笔者是一个听劝的人,后续也会慢慢的专注基础知识的介绍的,也希望大家多多关注点赞分享和推荐。

- END -
