楼主: lx008
9073 0

[源码分享] 期权策略回测python计算历史波动率-以poboquant为例 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

40%

还不是VIP/贵宾

-

威望
0
论坛币
995 个
通用积分
3.0600
学术水平
3 点
热心指数
4 点
信用等级
0 点
经验
3678 点
帖子
95
精华
0
在线时间
107 小时
注册时间
2007-2-5
最后登录
2023-12-28

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
标的历史波动率在期权策略中是一个重要的统计指标,使用poboquant量化平台可以比较方便地计算标的资产一定时间内的历史波动率,进而设计基于波动率的期权交易策略。

以50ETF为例,只要输入标的交易日期及定义历史范围(30、60或90天),即可通过CalOBJ.GetVolatility(历史价格数组)方便地取得标的历史波动率。

完整计算波动率及策略代码可参考 https://github.com/qmhedging/poboquant/blob/master/IH%E4%B8%8E50ETF%E5%AF%B9%E5%86%B2-%E6%94%B9%E8%BF%9B%E5%8E%86%E5%8F%B2%E6%B3%A2%E5%8A%A8%E7%8E%87%E8%AE%A1%E7%AE%97%20IH-50ETF%20Opt%20hedge%20HV%20cal%20fix

get hisvola20181128.jpg
       #计算历史波动率代码,注意一些变量在其他地方已经定义,可参考完整代码

        CalOBJ = CreateCalcObj() #创建一个计算对象
        option = PBObj()
        yearstring=int(tradingtime.year) #tradingtime 是用户取得的标的资产交易日期      
        monthstring=int(tradingtime.month)
        daystring=int(tradingtime.day)
        #准备计算50ETF的历史波动率
        option.EndDate=datetime.datetime(yearstring,monthstring,daystring)
        option.Count = 31 #获取过去31条K线
        klinedata0 = GetHisData(g.code0, BarType.Day, option)
        #print "len(klinedata) ",len(klinedata)
        klist = []
        i=0
        while i<len(klinedata0)-1:
            #print "previous trading day" +str(klinedata0.tradedate)
            #print "previous prices "+str(klinedata0.close)
            klist.append(klinedata0.close) #  
            i+=1
        if len(klist)>0:
            Kl = np.array(klist, dtype=np.double)
            HisVola=CalOBJ.GetVolatility(Kl) #得到历史波动率
        print "30D HisVola "+str(HisVola)

更多策略范例代码 可以参考 https://github.com/qmhedging/poboquant
云量化平台 可访问

https://quant.pobo.net.cn/quant/login#/

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 00:40