Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

摘要:
布莱克-斯科尔斯模型是最受欢迎的模型。高频数据可用于计算低频收益的波动性。相反,我们将关注随机波动率模型,并将其结果与其他模型进行比较。产量的Ljung-BoxQ检验也没有显示出明显的自相关。马尔可夫链蒙特卡罗MCMC由两部分组成。MCMC已被广泛用于解决物理和财务问题。MCMC过程中的采样意味着连续样本之间可能存在相关性。显然,需要低MCMC方差。95%随机波动率的分位数为红色

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

波动率是一个重要的概念,在金融和交易中有许多应用。这是期权定价的基础。波动率还使您可以确定资产分配并计算投资组合的风险价值(VaR)。甚至波动率本身也是一种金融工具,例如CBOE的VIX波动率指数。但是,与证券价格或利率不同,波动不能直接观察到。

取而代之的是,它通常被衡量为来自证券或市场指数的收益或收益历史的统计波动。这种类型的度量称为已实现波动率或历史波动率。衡量波动率的另一种方法是通过期权市场,在该市场中,可以使用期权价格通过某些期权定价模型来得出基础证券的波动性。Black-Scholes模型是最受欢迎的模型。这种定义称为 隐含波动性。VIX基于隐含波动率。

存在多种统计方法来衡量收益序列的历史波动率。较高频率的数据可用于计算低频收益的波动率。例如,使用日内收益率来计算每日波动率;使用每日收益来每周波动。人们还可以使用每日OHLC(开盘价,最高价,最低价和收盘价)来计算每日波动率。更多的学术方法包括ARCH(自回归条件异方差),GARCH(广义ARCH),TGARCH(阈值GARCH),EGARCH(指数GARCH)等。我们不会详细讨论每个模型及其优缺点。相反,我们将专注于随机波动率(SV)模型,并将其结果与其他模型进行比较。通常,SV模型很难用回归方法来估计。

  EUR / USD汇率

我们将以2003-2018年EUR / USD汇率的每日收盘价为例来计算每日波动率。

  1.  
    ask = readtable('EURUSDdaily.csv');
  2.  
     
  3.  
    t = ask.Time;
  4.  
    cl = ask.close;
  5.  
     
  6.  
    %% 相关性检验
  7.  
    rtn = double((cl - lagmatrix(c
  8.  
     
  9.  
    % - remove NaN
  10.  
    t = t(2:en ;
  11.  
     
  12.  
    n = size(rtn,1); %数据量
  13.  
     
  14.  
    figure('position',

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第1张

图1. EUR / USD的每日汇率 和每日对数收益率。

图2显示没有证据表明收益率存在序列相关性。最多30个之后的收益的自相关函数(ACF)和偏自相关函数(PACF)无相关性。收益率的Ljung-Box Q检验也未显示明显的自相关。

  1.  
    % 序列相关性检验
  2.  
    figure('position',[355
  3.  
     
  4.  
    figure('position',[355
  5.  
    ylabel('Return^2');

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第2张

图2.收益相关性检验。Ljung-Box Q检验(左下方)未显示出明显的自相关。自相关函数(右上)和部分自相关函数(右下)(红色虚线为95%置信区间),表示没有相关性。

但是,我们可以确定具有较大绝对收益的周期的群集。因此,绝对返回值具有明显的序列相关性。这在图3的收益平方分析中得到了证实,其中ACF和PACF均显着,并且Ljung-Box Q检验也强烈表明了序列自相关。这种相关性是由集群的波动性引起的,也就是说,波动率在某些时期(例如,2008年的金融危机)较高,而在其他时期则较低。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第3张

图3.收益率平方的相关检验。

GARCH(广义自回归条件异方差)模型

我们首先使用经典GARCH(1,1)模型对收益系列进行建模

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第4张

可以使用Matlab来估算GARCH(1,1)模型。图4和5中的ACF,PACF和Ljung-Box Q检验未显示出残差中的显着序列相关性,图4左上方的残差项比原始返回序列更像白噪声。然后可以认为GARCH(1,1)模型足以描述收益率的波动性(图6)。

  1.  
     
  2.  
    % 序列残差相关性检验
  3.  
    figure('position',[355 320 800 400]);
  4.  
    plotcorrstat(t,res,30,1:30)
  5.  
     
  6.  
     
  7.  
     
  8.  
    %% 绘制波动率
  9.  
    figure('position',[355 320 800 200]);
  10.  
    plot(t,V
  11.  
    ylabel('GARCH Volatility h_t');

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第5张

图4. GARCH(1,1)模型残差的相关性检验。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第6张

图5.对GARCH(1,1)模型的残差平方的相关性检验。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第7张

图6. GARCH(1,1)模型的波动率。

马尔可夫链蒙特卡洛(MCMC)

MCMC由两部分组成。在 蒙特卡洛 部分是如何从一个给定的概率分布得出的随机样本,马尔可夫链 部分的目标是产生一个稳定的随机过程,称为马尔可夫过程。马尔可夫过程具有以下特征:随机过程的下一步骤的状态仅取决于当前步骤的状态。这种依赖性不是确定性的。取而代之的是,由当前概率到下一步的过渡由平稳概率分布来描述。 

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第8张

MCMC已被广泛用于解决物理和财务问题。

随机波动率(SV)模型

从1990年代初开始就随机波动率建模,自1994年Jacquier,Polson和Rossi的论文首次为随机波动率提供清晰证据以来,该模型就开始应用。根据他们的开创性论文,我们编写了SV模型,

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第9张

MCMC诊断

根据问题和设置,MCMC在序列接近目标分布之前可能需要进行多次迭代。如图7所示  beta快速达到稳定状态。稳定性之前的这些迭代称为“老化”。我们运行10000次迭代。

 Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第10张

图7.参数的迭代。

在MCMC过程中抽取样本意味着连续样本之间可能存在相关性。为了评估序列中有多少相关,我们绘制了每个参数在不同滞后的样本自相关函数(图8)。具有高度相关性的马尔可夫链在参数空间中缓慢移动,并需要更多的迭代和更长的计算时间才能以接近目标分布的概率访问参数空间中的不同区域。因此,给定固定的迭代总数 ,具有高相关性的马尔可夫链的独立样本的总数小于具有低相关性的马尔可夫链的独立样本的总数 。

我们可以通过计算 有效样本量 (ESS)表示单个马尔可夫链的参数。了解ESS后,我们可以估算 MCMC方差,它衡量MCMC接近目标分布的精确度。显然,需要低MCMC方差。

可以为单个参数计算ESS。但是,考虑到参数之间的潜在互相关性(我们将在下面的联合分布图中看到),我们计算了多元ESS,发现在6000个样本中大约有517个。这些小的标准误差表明,我们的单个MCMC序列中的样本很好地代表了参数的目标联合分布。在ESS值较小(通常<100)的情况下,要么必须调整分布的参数以减少自相关,要么必须简单地生成更多样本(以计算时间为代价)。

可以采用用于Metropolis-Hastings算法的更复杂的提议方法来减少序列中的相关性,例如汉密尔顿式MCMC。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第11张

图8.老化后参数序列的自相关。红线表示5%的显着性水平。

结果和讨论

去除burin-in后,我们获得了参数样本的集合,这些样本可以从参数的真实高维联合分布中近似随机抽取的样本。然后,我们可以对这些参数进行统计推断。例如,成对参数的联合分布和每个参数的边际分布如图9所示。

使用联合后验分布证明采样是合理的。但是,为不同的先验分布的变量计算出接近形式的后验分布将很麻烦。在这种情况下,Metropolis-Hastings采样方法有优势。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第12张

图9.配对参数的联合分布的散点图和参数的边缘分布(对角线面板)的直方图。

从边际分布,我们可以估计参数的均值和标准误

 betaalpha1alpha2sigma
均值0.004-0.0530.9570.044
标准误0.0080.0080.0060.004


随机波动率及其置信区间是通过在序列变得稳定之后计算采样波动率的平均值,2.5%和97.5%的分位数来获得的。绘制在图10中。

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第13张

图10. 4000次测试后随机波动率的后验均值。随机波动率的95%的分位数之间用红色表示置信区间。

SV模型的随机波动总体上与GARCH模型非常相似,但参差不齐。这是自然的,因为SV模型中假设了额外的随机项。与其他模型相比,使用随机波动率模型的主要优点是,波动率被建模为随机过程而不是确定性过程。这使我们可以获得序列中每次的波动率的近似分布。当应用于波动率预测时,随机模型可以为预测提供置信度。另一方面,缺点也很明显。计算成本相对较高。


Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型第14张

最受欢迎的见解

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交易策略

免责声明:文章转载自《Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GIT团队合作探讨之二--Pull RequestUOS安装zerotier-one下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何计算模型参数的估计值(梯度下降法)

1. 梯度下降法   1.1 梯度下降法的算法思路     算法目的:找到(损失)函数的最小值以及相应的参数值。从而找到最小的损失函数。     梯度下降法:通过模拟小球滚动的方法来得到函数的最小值点。     小球会根据函数形状找到一个下降方向不停的滚动,它的高度一直是下降的。随着时间的推移,小球会滚到底,从而找到最小值点。     但是梯度下降法不能...

生存分析(survival analysis)

一、生存分析(survival analysis)的定义  生存分析:对一个或多个非负随机变量进行统计推断,研究生存现象和响应时间数据及其统计规律的一门学科。   生存分析:既考虑结果又考虑生存时间的一种统计方法,并可充分利用截尾数据所提供的不完全信息,对生存时间的分布特征进行描述,对影响生存时间的主要因素进行分析。  生存分析不同于其它多因素分析的主要区...

R语言马尔可夫体制转换模型Markov regime switching

原文链接:http://tecdat.cn/?p=12280 总览 本文简要介绍了一种简单的状态切换模型,该模型构成了隐马尔可夫模型(HMM)的特例。这些模型适应时间序列数据中的非平稳性。从应用的角度来看,这些模型在评估经济/市场状态时非常有用。这里的讨论主要围绕使用这些模型的科学性。 基本案例 HMM的主要挑战是预测隐藏部分。我们如何识别“不可观察”的...

QuantLib 金融计算——原理之蒙特卡洛(Monte Carlo)

目录 QuantLib 金融计算——原理之蒙特卡洛(Monte Carlo) 概述 蒙特卡洛与设计模式 随机路径的模拟效率的瓶颈与变通的办法 扩展阅读 QuantLib 金融计算——原理之蒙特卡洛(Monte Carlo) 概述 在金融工程计算中,蒙特卡洛最常见的应用场景是为衍生品定价,特别是路径依赖的奇异期权。 作为金融工程计算的三大方...

期权波动率模型及交易策略分析

牛市价差和熊市价差是流行的期权交易策略   A 波动率对期权交易十分重要   股票、期货交易都是方向性交易,投资者希望交易标的按照预判方向走。然而,标的走势并不是单方向的,有时短期波动会成为方向性投资者的负担(如短期保证金增加)。对期权交易者而言,没有波动也就没有这个市场了。换言之,期权交易的就是标的资产在未来一段时间的波动。为了理解这点我们看下看涨期权...

最大似然估计

参考 从最大似然到 EM 算法浅解最大似然估计学习总结EM 算法及其推广学习笔记 之前已经总结了似然的概念,那么顺其自然的理解就是,求得似然最大值的参数即为想要的参数,也就是参数估计,使用的方法为最大似然估计。 先提出几个问题: 1.最大似然估计求参数的一般流程是怎样的? 2.什么样的场景适合/不适合最大似然估计?为什么 求解步骤: 基于对似然函数 L(θ...