最近我們被客戶要求撰寫關於隨機波動率SV模型的研究報告,包括一些圖形和統計輸出。
什麼是隨機波動率?隨機波動率 (SV) 是指資產價格的波動率是變化的而不是恆定的 。
「隨機」一詞意味著某些變量是隨機確定的,無法精確預測。
在金融建模的背景下,隨機建模疊代隨機變量的連續值,這些值彼此不獨立。非獨立的意思是雖然變量的值會隨機變化,但其起點將取決於其先前的值,因此取決於其先前的值,依此類推;這描述了所謂的隨機遊走。
點擊標題查閱往期內容
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型
左右滑動查看更多
01
02
03
04
在定義了波動率的含義之後,我們現在通過討論波動率隨機變化的證據來引導其餘部分。我們(大體上)遵循,對現金和期權市場中觀察到的價格行為進行一些實證觀察。我們考慮了一些經濟解釋,並將它們與手頭的主題聯繫起來:
厚尾
現在普遍接受的是,資產收益的經驗分布是尖峰的意思(大致),即關於均值的四階矩大於具有相同方差的正態分布的相同統計量。這意味著觀察到更多的極端回報和更少的中等回報,「尖峰」意味著實際分布中靠近均值的天數更多,「厚尾」表示極端收益率出現的頻率高於正態分布的預測,比如出人意料的「黑天鵝事件」。
看一眼金融時間序列通常會立即發現高波動期和低波動期。
事實上,肥尾和波動性聚類是同一枚硬幣的兩個方面。眾所周知,分布的混合,例如根據正態分布分布的價格變化,但具有隨機方差,可以複製肥尾。然而,通過直接將基礎價格分布建模為具有肥尾,可以同樣很好地解釋肥尾和波動性聚類。另一個經驗事實是波動機制的持續存在,存在高波動期和低波動期,而不僅僅是隨機事件。這一觀察表明了任何提議的波動率模型的某些內容。
什麼是隨機建模?
隨機建模是一種用於幫助做出投資決策的財務模型。這種類型的建模使用隨機變量預測不同條件下各種結果的機率。
隨機建模呈現數據並預測結果,這些結果說明了一定程度的不可預測性或隨機性。許多行業的公司都可以使用隨機模型來改進他們的業務實踐並提高盈利能力。在金融服務領域,規劃師、分析師和投資組合經理使用隨機模型來管理他們的資產和負債並優化他們的投資組合。
關鍵要點
了解隨機建模:恆定與可變
要理解隨機建模的概念,將其與相反的確定性建模進行比較會有所幫助。
確定性建模產生恆定的結果
無論您重新計算模型多少次,確定性建模都可以為特定的一組輸入提供相同的精確結果。在這裡,數學性質是已知的。它們都不是隨機的,只有一組特定值和一個問題的答案或解決方案。對於確定性模型,不確定因素是模型外部的。
隨機建模產生多變的結果
另一方面,隨機建模本質上是隨機的,模型中內置了不確定因素。該模型產生了許多答案、估計和結果——例如將變量添加到複雜的數學問題中——以查看它們對解決方案的不同影響。然後在各種情況下重複多次相同的過程。
資產的波動性是期權定價的關鍵組成部分。隨機波動率模型是出於對期權定價的 Black Scholes 模型進行修改的需要而開發的,該模型未能有效地考慮到標的證券價格波動性可能發生變化的事實。Black Scholes 模型反而做了簡化假設,即基礎證券的波動性是恆定的。隨機波動率模型通過允許基礎證券的價格波動率作為隨機變量波動來糾正這一點。通過允許價格變化,隨機波動率模型提高了計算和預測的準確性。
連續時間金融模型被寫成使用隨機微分方程的擴散過程。我們正在研究的模型的一般形式是
和
和
這些方程意味著 S 的瞬時回報由一些確定性項加上一些隨機噪聲給出。本身遵循類似(但更一般)的隨機動態。
Heston 隨機波動率模型
Heston 模型是由金融學者 Steven Heston 在 1993 年創建的隨機波動率模型。該模型使用波動率或多或少是隨機的假設,並具有以下區別於其他隨機波動率模型的特徵:
如下圖所示,觀察到的股票波動率可能會飆升至高於或低於平均水平,但似乎總是在平均水平附近。高波動期之後通常是低波動期,反之亦然。使用均值回歸確定波動範圍並結合 預測 技術,投資者可以選擇最佳交易。
資產價格具有隨時間變化的波動性(逐日收益率的方差)。在某些時期,收益率是高度變化的,而在其他時期則非常平穩。隨機波動率模型用一個潛在的波動率變量來模擬這種情況,該變量被建模為隨機過程。下面的模型與 No-U-Turn Sampler 論文中描述的模型相似,Hoffman (2011) p21。
這裡,r是每日收益率序列,s是潛在的對數波動率過程。
建立模型
首先,我們加載標普500指數的每日收益率。
returns = (pm.get_data("SP500"))
returns[:5]
正如你所看到的,波動性似乎隨著時間的推移有很大的變化,但集中在某些時間段。在2500-3000個時間點附近,你可以看到2009年的金融風暴。
ax.plot(returns)
指定模型。
GaussianRandomWalk('s', hape=len(returns))
nu = Exponential( .1)
r = StudentT( pm.math.exp(-2*s),
obs=returns)
擬合模型
對於這個模型,最大後驗(Maximum A Posteriori,MAP)機率估計具有無限的密度。然而,NUTS給出了正確的後驗。
pm.sample(tune=2000
Auto-assigning NUTS sampler...
plot(trace['s']);
觀察一段時間內的收益率,併疊加估計的標準差,我們可以看到該模型是如何擬合一段時間內的波動率的。
plot(returns)
plot(exp(trace[s]);
np.exp(trace[s])
參考文獻
點擊文末 「閱讀原文」
獲取全文完整資料。
本文選自《隨機波動率SV模型原理和Python對標普SP500股票指數時間序列波動性預測》。
點擊標題查閱往期內容
HAR-RV-J與遞歸神經網絡(RNN)混合模型預測和交易大型股票指數的高頻波動率
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型
R語言隱馬爾可夫模型HMM連續序列重要性重抽樣CSIR估計隨機波動率模型SV分析股票收益率時間序列
馬爾可夫Markov區制轉移模型分析基金利率
馬爾可夫區制轉移模型Markov regime switching
時變馬爾可夫區制轉換MRS自回歸模型分析經濟時間序列
馬爾可夫轉換模型研究交通傷亡人數事故時間序列預測
如何實現馬爾可夫鏈蒙特卡羅MCMC模型、Metropolis算法?
Matlab用BUGS馬爾可夫區制轉換Markov switching隨機波動率模型、序列蒙特卡羅SMC、M H採樣分析時間序列
R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉換隨機波動率SV模型、粒子濾波、Metropolis Hasting採樣時間序列分析
matlab用馬爾可夫鏈蒙特卡羅 (MCMC) 的Logistic邏輯回歸模型分析汽車實驗數據
stata馬爾可夫Markov區制轉移模型分析基金利率
PYTHON用時變馬爾可夫區制轉換(MRS)自回歸模型分析經濟時間序列
R語言使用馬爾可夫鏈對營銷中的渠道歸因建模
matlab實現MCMC的馬爾可夫轉換ARMA - GARCH模型估計
R語言隱馬爾可夫模型HMM識別不斷變化的股票市場條件
R語言中的隱馬爾可夫HMM模型實例
用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型
MATLAB中的馬爾可夫區制轉移(Markov regime switching)模型
Matlab馬爾可夫區制轉換動態回歸模型估計GDP增長率
R語言馬爾可夫區制轉移模型Markov regime switching
stata馬爾可夫Markov區制轉移模型分析基金利率
R語言如何做馬爾可夫轉換模型markov switching model
R語言隱馬爾可夫模型HMM識別股市變化分析報告
R語言中實現馬爾可夫鏈蒙特卡羅MCMC模型