原文链接:http://tecdat.cn/?p=17829

原文出处:拓端数据部落公众号

指数加权波动率是一种波动率的度量,它使最近的观察结果有更高权重。我们将使用以下公式计算指数加权波动率:

S [t] ^ 2 = SUM(1-a)* a ^ i *(r [t-1-i]-rhat [t])^ 2,i = 0…inf

其中rhat [t]是对应的指数加权平均值

rhat [t] = SUM(1-a)* a ^ i * r [t-1-i],i = 0…inf

上面的公式取决于每个时间点的完整价格历史记录,并花了一些时间进行计算。因此,我想分享Rcpp和RcppParallel如何帮助我们减少计算时间。

我将使用汇率的历史数据集  作为测试数据。

首先,我们计算平均滚动波动率

#*****************************************************************
# 计算对数收益率
#*****************************************************************
ret = diff(log(data$prices))tic(5)
hist.vol = sqrt(252) * bt.apply.matrix(ret, runSD, n = 200)
toc(5)

经过时间为0.17秒

接下来,让我们编写指数加权代码逻辑

# 建立 RCPP 函数计算指数加权波动率
load.packages('Rcpp')
sourceCpp(code='
#include <Rcpp.h>
using namespace Rcpp;
using namespace std;// [[Rcpp::plugins(cpp11)]]//ema[1] = 0
//ema[t] = (1-a)*r[t-1] + (1-a)*a*ema[t-1]
// [[Rcpp::exp{if(!NumericVector::is_na(x[t])) break;res[t] = NA_REAL;}int start_t = t;-a) * a^i * (r[t-1-i] - rhat[t])^2, i=0 ... inf
// [[Rcpp::export]]
NumericVector run_esd_cpp(NumericVector x, double ratio) {auto sz = x.siz// find start index; first non NA itemfor(t = 0; t < sz; t++) {if(!Num
0;  for(t = start_t + 1; t < sz; t++) {ema = (1-ratio) * ( x[t-1] + ratio * ema);double sigma = 0;    for(int i = 0; i < (t - start_t); i++) {sigma += pow(ratio,i) * pow(x[t-1-i] - ema, 2);}res[t] = (1-ratio) * sigma;}
, n, ratio = n/(n+1)) run_ema_cpp(x, ratio)
run.esd = funct

经过时间为106.16秒。

执行此代码花了一段时间。但是,代码可以并行运行。以下是RcppParallel版本。

# 建立 RCPP 并行函数计算指数加权波动率
load.packages('RcppParallel')
sourceCpp(code='using namespace Rcpp;
using namespace s
s(cpp11)]]
// [[Rcpp::depends(R
to read fromconst RMatrix<double> mat;// internal variablesconst double ratio
t;// initialize from Rcpp input and output matrixesrun_esd_helper(const Nume
all operator that work for thin, size_t end) {for (size_t c1 = begin; c1 < end; c1++) {       int t;// find start index; fir

经过时间为14.65秒

运行时间更短。接下来,让我们直观地了解使用指数加权波动率的影响

dates = '2007::2010'
layout(1:2)
e='h', col='black', plotX=F)plota.legend(paste('Dai
s,1],type='l',col='black')

不出所料,指数加权波动率在最近的观察结果中占了更大的比重,是一种更具反应性的风险度量。


最受欢迎的见解

1.HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率

2.WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

3.波动率的实现:ARCH模型与HAR-RV模型

4.R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

5.使用R语言随机波动模型SV处理时间序列中的随机波动率

6.R语言多元COPULA GARCH 模型时间序列预测

7.R语言基于ARMA-GARCH过程的VAR拟合和预测

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.R语言对S&P500股票指数进行ARIMA + GARCH交易策略

拓端tecdat|R语言中使用RCPP并行计算指数加权波动率相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  3. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  4. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  5. tmap | R语言中专门绘制地图的工具包

    tmap工具包的名称是Thematic Maps的缩写,是R中专门绘制地图的工具包.该包语法与ggplot2包比较类似,都是通过符合+来进行图层叠加. 加载示例数据: library(tidyvers ...

  6. R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口

    最近我们被客户要求撰写关于信用风险敞口的研究报告,包括一些图形和统计输出. 在之前的课堂上,我们已经看到了如何可视化多元回归模型(带有两个连续的解释变量).在此,目标是使用一些协变量(例如,驾驶员的年 ...

  7. 在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析

    广义相加模型(GAM:Generalized Additive Model),它模型公式如下:有p个自变量,其中X1与y是线性关系,其他变量与y是非线性关系,我们可以对每个变量与y拟合不同关系,对X2 ...

  8. 二次拟合r方_拟合R语言中的多项式回归

    原标题:拟合R语言中的多项式回归 让我们看一个经济学的例子:假设你想购买一定数量q的特定产品.如果单价是p,那么你会支付总金额y.这是一个线性关系的典型例子.总价格和数量成正比. 如下所示: 但购买和 ...

  9. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  10. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

最新文章

  1. UI设计比较流行的插画类型和运用
  2. 转 无损转换Image为Icon
  3. delimiters 插值 选项
  4. wifi共享大师电脑版_Wifi分析助手PC版-Wifi分析助手电脑版下载 v7.2.2-
  5. Hi Table定义未来电视!祝贺海信发布S7社交电视! ​
  6. javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext.xml
  7. Java面试题2021,文末有福利
  8. 什么是每点价值量(Dollar Per Point)
  9. 07网络发展趋势:风险和机遇并存
  10. 2021-07-25梦笔记
  11. python勒索病毒,新型勒索病毒Crypted强势来袭
  12. Webshell实现与隐藏探究
  13. ArcBlock 博客 | 区块链和数据库:致虚极,守静笃
  14. 电脑中毒,文件夹都变成exe文件怎么办?
  15. 翻译小窍门-谢谢你勾引我老公
  16. C++ 九阴真经之线程安全单例类
  17. iOS 百度地图之坐标转换
  18. 影之刃服务器维护,影之刃无法联机到服务器怎么办 解决办法
  19. 有深意的一段字,现在用的QQ签名
  20. I2C的基础概念和框架

热门文章

  1. UIPIckerView现实城市选择
  2. YUM服务那些事---详解YUM服务
  3. Java获取当前Linux系统ip,cpu和内存使用情况,进程信息并保存至数据库
  4. [C# 基础知识系列]专题十一:匿名方法解析
  5. Pytorch中Tensor和numpy数组的互相转化
  6. nginx安装错误:c compiler cc is not found
  7. SpringBoot1.5.9集成Activiti6
  8. 从Java看数据结构之——树和他的操作集
  9. hadoop component summary
  10. webpack多页面构建优化不完全指北