期货波动率指标设置方法 期货波动率指标设置方法有哪些
如何进行期货品种的选择用波动率试试!(1)
最近在讨论群里,有同志提到了期货品种的“波歼蚂耐动率”问题。
正好,关于期货品种的波动特性,我也研究了一段时间。最近正好也整理出了一些思路。在这里跟大家聊聊。
刘大1984最近发了一篇文章:准备迎接波动扩张
文章的思路跟我的正好不谋而合!
我们都在关注波动特性的发散和收敛问题。也都观察到了其不同状态下对行情未来走势的一定影响。所以,我认为通过“波动率”对具有“潜力”的期货品种进行选择(甚至是择时)都具有一定的意义。
不过,我在实现“波动率”的具象化过程和刘大的不太一样。
这涉及到一个对“波动率”概念的定义问题。我们要先来讨论一下。
我先引用百度百科上对波动率的定义:
波动率是金融资产价格的波动程度,是对资产收益率不确定性的衡量,用于反映金融资产的风险水平。波动率越高,金融资产价格的波动越剧烈,资产收益率的不确定性就越强;波动率越低,金融资产价格的波动越平缓,资产收益率的确定性就越强。
我们其实都知道,波动率这个概念在期权上应用的非常广泛和深刻。尤其是通过已有价格数据计算的历史波动率。
我再引用一下百度百科关于历史波动率的定义:
历史波动率是基于过去的统计分析得出的,假定未来是过去的延伸,利用历史方法估计波动率类似于估计标的资产收益系列的标准差。
除此外,还要引用历史波动率的计算方法:
首先从市场上获得标的证券在固定时间段上的价格(一般是每天的收盘价格或者均价);然后,对于每个时间段,求出该时间段末的股价与上一时间段末的股价之比的自然对数;然后,求出这些对数值的标准差,再乘以一年中包含的时段数量氏春的平方根,得到的即为历史波动率。
一般有“率”字的都是个百分比。我们看历史波动率的计算方法就能看出,其确实也是个比率。但是我们回看百度对波动率的定义和对历史波动率的定义,也可以发现两个很重要的点:
计算波动率离不开一个统计上的计量数据——标物携准差;
通过波动率是用来描述市场波动特性的——价格波动越剧烈,波动率越大,反之则越小。
从这两点上,我们可以推导出一个广义“波动率”的概念,即:能够通过类似标准差等统计工具,描述出市场波动特性的指标,都可以作为“波动率”来使用。
这一点非常重要!!
因为,很多描述市场波动特性的工具其实并不是“率”(上文中我加了引号的“波动率”就是这种不是“率”的工具,后文均采用『“波动率”』这种形式来描述,避免与期权交易中真正的波动率混淆)。
理解了这一点,我们也就可以进一步去进行我们的论述了。
什么是波动率指数
原文链接:http://tecdat.cn/?p=19129
摘要
在学术界和金融界,分析高频财务数据的经济价值现在显而易见。它是每日风险监控和预测的基础,也是高频交易的基础。为了在财务决策中高效利用高频数据,高频时信碰代采用了最先进的技术,用于清洗和匹配交易和报价,以及基于高收益的流动性的计算和预测。
高频数据的处理
在本节中,我们讨论高频金融数据处理中两个非常常见的步骤:(i)清理和(ii)数据聚合。
> dim(dataraw);[1] 48484 7> tdata$report;initial number no zero prices select exchange48484 48479 20795sales condition merge same timestamp20135 9105> dim(afterfirstclean)[1] 9105 7
高频数据的汇总
通常不会在等间隔的时间点记录价格,而许多实际波动率衡量方法都依赖等实际间隔的收益。有几种方法可以将这些异步和/或不规则记录的序列同步为等距时间数据。
最受欢迎的方法是按照时间汇总,它通过获取每个网格点之前的最后价格来将价格强制为等距网格。
>#加载样本价格数据> data("sample");>#聚合到5分钟的采样频率:> head(tsagg5min);PRICE2008-01-04 09:35:00 193.9202008-01-04 09:40:00 194.6302008-01-04 09:45:00 193.5202008-01-04 09:50:00 192.8502008-01-04 09:55:00 190.7952008-01-04 10:00:00 190.420>#聚合到30秒的频率:>滑巧谈 tail(tsagg30sec);PRICE2008-01-04 15:57:30 191.7902008-01-04 15:58:00 191.7402008-01-04 15:58:30 191.7602008-01-04 15:59:00 191.4702008-01-04 15:59:30 191.8252008-01-04 16:00:00 191.670
在上面的示例中,价格被强制设置为5分钟和30秒的等距时间网格。此外,aggregates函数内置于所有已实现的度量中,可以通过设置参数align.by和align.period来调用该函数。在这种情况下,首先将价格强制等间隔的常规时间网格,然后根据这些常规时间段内执行观察值的收益率来计算实际度量。这样做的优点是,用户可以将原始价格序列输入到实际度量中宽蔽,而不必担心价格序列的异步性或不规则性。
带有时间和波动率计算的价格示例:
>#我们假设stock1和stock2包含虚拟股票的价格数据:>#汇总到一分钟:> Price_1min= cbind(aggregatePrice(stock1),aggregatePrice(stock2));>#刷新时间聚合:refreshTime(list(stock1,stock2));>#计算跳跃鲁棒的波动性指标>#基于同步数据rBPCov(Price_1min,makeReturns=TRUE);>#计算跳跃和噪声鲁棒的波动性度量>#基于非同步数据:
实际波动性度量
高频数据的可用性使研究人员能够根据日内收益的平方来估计实际波动性(Andersen等,2003)。实际上,单变量波动率估计的主要挑战是应对(i)价格的上涨和(ii)微观结构噪声。因此多变量波动率估计也引起了人们的注意。高频软件包实施了许多新近提出的实际波动率方法。
下面的示例代码说明了日内周期的估计:
>#计算并绘制日内周期> head(out); returns vol dailyvol periodicvol2005-03-04 09:35:00-0.0010966963 0.004081072 0.001896816 2.1515392005-03-04 09:40:00-0.0005614217 0.003695715 0.001896816 1.9483792005-03-04 09:45:00-0.0026443880 0.003417950 0.001896816 1.801941
波动性预测
学术研究人员普遍认为,如果进行适当的管理,对高频数据的访问将带来优势,可以更好地预测未来价格变化的波动性。早在2003年Fleming等人(2003年)估计,投资者将愿意每年支付50到200个点,来预测投资组合绩效的收益,这是通过使用高频收益率而不是每日收益率来进行波动率预测的。
尽管HAR和HEAVY模型的目标相同,即对条件波动率进行建模,但它们采用的方法不同。HAR模型专注于预测收盘价变化。HAR模型的主要优点是,它易于估计(因为它本质上是一种可以用最小二乘方估计的线性模型), HEAVY模型的主要优点在于,它可以模拟收盘价和收盘价的条件方差。此外,HEAVY模型具有动量和均值回归效应。与HAR模型相反,HEAVY模型的估计是通过正态分布的最大似然来完成的。接下来的本文更详细地介绍HAR模型和HEAVY模型,当然还要讨论并说明如何使用高频收益率来估计这些模型。
HAR模型
示例
将HARRV模型拟合到道琼斯工业指数,我们加载每日实际波动率。
>#每天获取样本实际波动率数据> DJI_RV= realized$DJI;#选择 DJI> DJI_RV= DJI_RV[!is.na(DJI_RV)];#删除缺失值
第二步,我们计算传统的异构自回归(HAR)模型。由于HAR模型只是线性模型的一种特殊类型,因此也可以通过以下方式实现:harModel函数的输出是lm的子级harModel lm,线性模型的标准类。图绘制了harModel函数的输出对象,水平轴上有时间,在垂直轴上有观察到的实际波动率和预测的实际波动率(此分析是在样本中进行的,但是模型的估计系数可以显然用于样本外预测)。从图的检查中可以清楚地看出,harModel可以相对快速地拟合波动水平的变化,
[1]"harModel""lm"> x;Model:RV1= beta0+ beta1* RV1+ beta2* RV5+ beta3* RV22Coefficients:beta0 beta14.432e-05 1.586e-01r.squared adj.r.squared0.4679 0.4608> summary(x);Call:"RV1= beta0+ beta1* RV1+ beta2* RV5+ beta3* RV22"Residuals:Min 1Q Median 3Q Max-0.0017683-0.0000626-0.0000427-0.0000087 0.0044331Coefficients:Estimate Std. Error t value Pr(>|t|)beta0 4.432e-05 3.695e-05 1.200 0.2315beta1 1.586e-01 8.089e-02 1.960 0.0512.beta2 6.213e-01 1.362e-01 4.560 8.36e-06***beta3 8.721e-02 1.217e-01 0.716 0.4745---Signif. codes: 0 ^a˘ A¨ Y***^a˘ A´ Z 0.001 ^a˘ A¨ Y**^a˘ A´ Z 0.01 ^a˘ A¨ Y*^a˘ A´ Z 0.05 ^a˘ A¨ Y.^a˘ A´ Z 0.1 ^a˘ A¨ Y ^a˘ A´ Z 1Residual standard error: 0.0004344 on 227 degrees of freedomMultiple R-squared: 0.4679, Adjusted R-squared: 0.4608F-statistic: 66.53 on 3 and 227 DF, p-value:< 2.2e-16
HARRVCJ模型拟合
估计harModel的更复杂版本。例如,在Andersen等人中讨论的HARRVCJ模型。可以使用示例数据集估算,如下所示:
> data= makeReturns(data);#获取高频收益数据> xModel:sqrt(RV1)= beta0+ beta1* sqrt(C1)+ beta2* sqrt(C5)+ beta3* sqrt(C10)+ beta4* sqrt(J1)+ beta5* sqrt(J5)+ beta6* sqrt(J10)Coefficients:beta0 beta1 beta2 beta3 beta4 beta5-0.8835 1.1957-25.1922 38.9909-0.4483 0.8084beta6-6.8305r.squared adj.r.squared0.9915 0.9661
最后一个示例是仅将日内收益作为输入就可以估算的一种特殊类型HAR模型。
HEAVY模型
将HEAVY模型拟合到道琼斯工业平均指数。第一步,我们加载道琼斯工业平均指数。然后,我们从该库中选择每日收益和每日实际核估计(Barndorff-Nielsen等,2004)。现在,作为HeavyModel输入的数据矩阵的第一列为收益率,第二列为Realized Kernel估计值。我们进一步将参数设置为采样期内日收益率和平均实际核估计方差。现在,我们来估算HEAVY模型。根据模型的输出,图绘制了由模型中的第二个方程式估算的条件方差。
># heavy模型在DJI上的实现:> returns= returns[!is.na(rk)]; rk= rk[!is.na(rk)];#删除NA> startvalues= c(0.004,0.02,0.44,0.41,0.74,0.56);#初始值> output$estparams[,1]omega1 0.01750506omega2 0.06182249alpha1 0.45118753alpha2 0.41204541beta1 0.73834594beta2 0.56367558
流动性
交易量和价格
交易量和价格通常作为单独的数据对象提供。对于许多与交易数据有关的研究和实际问题,需要合并交易量和价格。由于交易量和价格可能会收到不同的报告滞后影响,因此这不是一个简单的操作(Leeand Ready 1991)。函数matchTradesQuotes可用于匹配交易量和价格。根据Vergote(2005)的研究,我们将价格设置为2秒作为默认值。
流动性衡量
可以使用函数tqLiquidity根据匹配的交易量和价格数据计算流动性指标。表中计算了主要实现的流动性衡量指标,并且可以用作函数tqLiquidity的参数。
以下示例说明了如何:(i)匹配交易和报价,(ii)获取交易方向,以及(iii)计算流动性衡量指标。
>#加载数据样本>#匹配交易量和价格数据> tqdata= matchTradesQuotes(tdata,qdata);>#在tqdata中显示信息> colnames(tqdata)[1:6];[1]"SYMBOL""EX""PRICE""SIZE""COND""CORR">#根据Lee-Ready规则推断的交易方向>#计算有效价差> es= tqLiquidity(tqdata,type="es");
最受欢迎的见解
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交易策略
如何进行期货品种日内波动率的排序
1、首先对各期货品种的波动进行考察。
2、扰笑其次波动活跃度从大御羡到小的排序。
3、最后以此衡镇李拍量该品种每天的上下波动幅度即可。
Eviews中期货市场收益率和波动率如何判断
收首悄益率取值较为集中的聚集在均值周围,表现出尖峰厚尾的分布特征,说明市场存在暴涨暴跌、大幅波动的现象。
上升波动率=(第二个底部-第亏芹皮一个底部)/两底部的时间距离。
下降波动率=(销差第二个顶部-第一个顶部)/两顶部的时间距离