pandas rolling对象的自定义聚合函数
pandas rolling对象的自定义聚合函数
计算标准差型的波动率剪刀差
利用自定义的聚合函数, 把它应用到pandas的滚动窗长对象上,
可以求出 标准差型的波动率剪刀差
代码
def volat_diff(roc1_rolling, center=-0.001, nSD=5): '''计算: 标准差型波动率剪刀差 参数: roc1_rolling: 滚动窗长里的roc1 center: roc1(1日波动率)的平均值 nSD: 求标准差时用的窗长 用法: 1. rolling.apply(volat_diff, (0, 8)) 2. rolling.apply(volat_diff, args=(0, 8)) 3. rolling.apply(volat_diff, kwargs={'center':0, 'nSD':8}) ''' up_lst=[] down_lst=[] for roc1 in roc1_rolling: if roc1 < center: #如果涨幅小于minret,将被用于计算“下行波动率” down_lst.append(roc1) else: up_lst.append(roc1) #反之,归入计算“上行波动率” upvar = sum([(r-center)**2 for r in up_lst]) /nSD #计算上行波动率 downvar= sum([(r-center)**2 for r in down_lst])/nSD #计算下行波动率 vd = upvar - downvar #计算二者差值 #vd_lst = [] #vd_lst.append(vd) return vd def mysum(rolling): s=0 for v in rolling: s +=v return s
相关推荐
ztyzly00 2020-06-12
zycchun 2020-03-15
Lius 2020-05-11
wenjieyatou 2020-05-08
xuanlvhaoshao 2020-02-20
李玉志 2020-02-02
ztyzly00 2020-01-12
herohope 2019-12-22
阿亮 2019-10-31
落地窗前梦残夜 2019-06-29
tuxlcsdn 2019-06-28
Depth 2019-06-27
世樹 2019-05-22
LinoHngJie 2019-04-16
programmerv 2019-06-20
异道 2019-01-07
mrandy 2019-02-10
Jinnan 2018-09-24