• 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
    
    
  • 相关阅读:
    RPA-UiPath视频教程2
    skywalking链路监控
    RPA-UiPath视频教程1
    Redis基础与性能调优
    tomcat调优
    DDos、CC攻击与防御
    UiPath官方视频Level2
    UiPath直播课程
    UiPath手把手教程
    【0】python核心编程,第二章
  • 原文地址:https://www.cnblogs.com/duan-qs/p/12116905.html
Copyright © 2020-2023  润新知