量化模型

利用R语言aggregrate函数计算年化波动率


R语言的aggregate函数是数据处理中常用到的函数,功能非常强大,可以按照要求将数据分组聚合,然后对聚合数据进行函数统计操作。用法如下:

## Default S3 method:
aggregate(x, ...)
 
## S3 method for class 'data.frame'
aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE)
 
## S3 method for class 'formula'
aggregate(formula, data, FUN, ...,subset, na.action = na.omit)
 
## S3 method for class 'ts'
aggregate(x, nfrequency = 1, FUN = sum, ndeltat = 1,ts.eps = getOption("ts.eps"), ...)

利用aggregate来计算一个时间序列的波动率十分方便。例如,计算上证指数每年的年化波动率可以用下面一行代码轻松完成

sseVol = aggregate(sseClose, as.numeric(format(index(sseClose), "%Y")),
                     function(ss) coredata(tail(TTR:::volatility(
                       ss,
                       n=NROW(ss),
                       calc="close"), 1)))

其中,sseClose为一个xts(Extensible Time Series)对象,储存上证指数的日收盘价。

运行上面的代码,得到上证指数的每年的年化波动率如下:

2000 0.21219212
2001 0.21401575
2002 0.23728070
2003 0.17639924
2004 0.20401043
2005 0.21318651
2006 0.21764349
2007 0.35934995
2008 0.46109998
2009 0.30659040
2010 0.23002558
2011 0.18642647
2012 0.17607391
2013 0.18766433
2014 0.17470314
2015 0.39787744
2016 0.22626145
2017 0.08773395
2018 0.20021664

采用此方法,可以将上证指数与美国S&P500指数的波动率显示如下:

sse vol

 

 

量化模型
基于计量经济学的投资策略失败的七个原因
量化模型
BS公式能否正确定价资产价格变化?
量化模型
利用正态法计算股票组合VaR实例
还没有评论哦,快来抢沙发吧!