×

波动率的分布,这个专题似乎没有研报聊过!

wang wang 发表于2026-03-16 20:46:31 浏览1 评论0

抢沙发发表评论

波动率的分布,这个专题似乎没有研报聊过!

波动率极大值幅度

在兴业证券的高频系列研究中,他们的首席分析师郑兆磊老师聊过收益率分布中的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(5len(data.data)):        tmp_data = data.data[i-5:i, :, :].reshape(-1len(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(-1len(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 > q    prefer_sigma_30 = (prefer_sigma_30 * np.where(flag, 1.0, np.nan)).mean() / q    res = 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 -