蒙特卡洛模擬法計算VaR的場景生成技術

2021-01-13 私募工場

版權聲明:私募工場致力於服務廣大投資者,推薦優秀基金管理人、培養優秀投資顧問,分享精華、精選、精讀內容。版權歸原作者所有。部分未聯繫到作者和原始出處的文章,請原作者聯繫506743560@qq.com或直接在公眾號留言,或致電15034081448,「私募工場」會在第一時間處理。


一個場景是所有風險因子的表現序列。歷史場景是指風險因子在歷史上某天的實際表現,隨機場景則是計算機隨機模擬生成的。通常蒙特卡洛模擬法需生成至少1000個隨機場景,然後計算組合在每個場景下的損益,最後取5%分位點得到組合的VaR值。


由於蒙特卡洛法所需要的隨機場景較多,場景的生成速度非常重要。下面介紹標準計算模型、技術改進和一些更進一步的技術改進方向。


註:下面只討論如何生成「一個」隨機場景。要生成多個,簡單重複即可。


1.標準模型


前面已經提到過一種隨機場景生成方法:假設風險矩陣  Σ 為 N×N的半正定矩陣,其中 N為風險因子的個數。它可分解為 Σ=C′C,那麼可以生成因子場景為:

r=C′z


其中 z 為隨機數的向量,為獨立的正態分布。


這是標準的場景生成模型。但如果嚴格按照尚需步驟走會有以下問題:


需要生成中間的風險矩陣,如果風險因子 n較大,保存和計算這個風險矩陣所需要計算和內存資源較大。


計算 Σ=C′C的分解比較費時。


上述計算是不穩定的,這體現在兩個方面:

當增加一個新的風險因子(持倉),上述分解需要全部重算,效率較低;

當增加一個新的風險因子(持倉)時,即使使用同樣的隨機數,上面的計算結果將截然不同,比如同一個持倉在不同組合裡面計算的VaR將不一樣。


2.技術改進


模型仍然是上面那個模型,但關鍵支持在於 C的生成算法。若 Σ是任意的半正定矩陣,我們別無它法。但需要注意這裡的 Σ比較特殊。


假設 n個風險因子過去 T天的的收益率組成一個 T×N的矩陣 D,其中 T為計算VaR的樣本長度。那麼有


亦即就是上面我們所需要的一個 C。我們只需要生成滿足正態分布的 T×1的隨機數向量 z,然後就是我們需要的一個場景。


這中間不需要計算風險矩陣,也不需要做半正定矩陣的分解。計算的時間複雜性從 N3下降到 NT,空間複雜性從 N2下降到 NT,均有數量級上的下降。比如如果風險因子數量超過1萬,在一年的樣本下,計算速度將加快40萬倍,內存使用量少40倍。


拋開上面的數學,場景有更直觀的解釋,它事實上是風險因子的歷史場景的隨機組合。這麼理解蒙特卡洛方法,是不是簡單多了?


要保存這種隨機組合很簡單,每個場景只需要保存 T個隨機數,而且它跟風險因子的個數完全無關,這也徹底解決了上面提到的計算不穩定的情況。


當然,這種角度也有局限性。那就是無法直接對風險矩陣(也就是相關性)進行任何調整。


3.更進一步的改進方向


為了更進一步地提升效率,以及提高蒙特卡洛模擬法在不同樣本期間計算的穩定性,有更進一步的改進或簡化。


首先,為了提高在不同樣本期間計算的穩定性,我們在最開始就生成足夠長的隨機字符串。第一天計算使用前 T個隨機數,第二天使用從第二個隨機數開始的 T個隨機數,依次類推。這樣計算第一天VaR使用的場景和計算第二天VaR使用的場景中有部分隨機因素是重疊的,這可以大大降低由於場景變動較大帶來的蒙特卡洛VaR不穩定的現象。


其次,我們還可以做更進一步地簡化,比如隨機場景不是過去樣本期間所有場景的隨機組合,而是其中某兩個場景的組合,這樣計算複雜性可進一步降低;同時,當計算第二天的VaR時,並不更換全部的隨機場景,而是只用最新的行情數據更新少數幾個場景,這樣也可以降低場景生成成本。


來源:閱微堂


私募工場歷史文章(回復後面括弧中內容獲取系列全文)

精選精華文章(精華) | 《私募相關法規》系列(fg) | 金融模型·量化投資系列(lhtz) | 算法理論&代碼(sfdm) | SVM系列(svm) | 用R語言做數據分析(r) | 金融時間序列連載(jrsjxl) | 機器學習系列連載(jqxx) | 人工智慧系列(AI)| 傅立葉分析系列連載(fly) | 《宏觀經濟研究》系列(hgyj) | 《微觀經濟學》系列(wgjj) | 《大數據與金融業》資訊系列(dsj) | 國家戰略權威評論(zlpl) | 世紀大救市觀察系列(sjdjs) | 賭博與投資系列(dbytz) | 投資時鐘系列(tzsz) | 期貨講堂(qhjt)  | 套利系列(套利系列) | 各交易所程序化交易細則徵求意見稿(cxhjyxz)


加入私募工場QQ交流群/微信群,參與每周線下交流會/每個季度大型論壇/年度論壇/以及各專題講座,請聯繫微信:15034081448或Guoguo_06-08.


點擊閱讀原文進入可查看私募工場歷史課程



相關焦點

  • 【技術園地】如何應用蒙特卡洛模擬法解決「不確定度」計算難題
    地點:我要測網在線微課堂            主講人:朱佐剛  副研究員  北京市勞動保護科學研究所室內環境檢測中心實驗室技術負責人一、蒙特卡洛模擬法介紹1、什麼是蒙特卡洛模擬法2、蒙特卡洛模擬法兩個例子3、蒙特卡洛法計算圓周率4、蒙特卡洛法計算定積分二、蒙特卡洛法用於分析方法不確定度評定1、什麼是不確定度以及評定的目的2、與不確定度評定相關的計量學名詞
  • 風險測度之Var值——用蒙特卡洛模擬法怎麼算?
    VaR值的計算方法之一——歷史模擬法,今天我們將詳細的來說說VaR這個風險管理界的「新寵」究竟是個啥?並介紹另外一種計算方法——蒙特卡洛模擬法。VaR的概念VaR是1993年J·P·Morgon,G30集團在考察衍生產品的基礎上提出的一種風險測度方法。
  • 歷史模擬法、蒙特卡羅的模擬法計算VaR和ES值!
    歷史模擬法、蒙特卡羅的模擬法計算VaR和ES值! 一、知識點介紹1.1 歷史模擬法我們在之前有用到Delta-Normal的GARCH和RiskMetrics方法來計算aR和ES,假設的是殘差滿足正態分布,對殘差進行二次相關序列的建模並擬合殘差,能夠得到未來的預測值。
  • 蒙特卡洛模擬法的實施步驟
    蒙特卡洛模擬法的實施步驟一般分為三步:  (1)分析每一可變因素的可能變化範圍及其概率分布。  (2)通過模擬試驗隨機選取各隨機變量的值,並使選擇的隨機值符合各自的概率分布。為此可使用隨機數或直接用計算機求出隨機數。  (3)反覆重複以上步驟,進行多次模擬試驗,即可求出開發項目各項效益指標的概率分布或其他特徵值。
  • R語言蒙特卡洛計算和快速傅立葉變換計算矩生成函數
    可以使用蒙特卡洛模擬來計算矩生成函數函數,> F=function(x) ifelse(x<0,0,1-exp(-x)/3)> Finv=function(u) uniroot(function(x) F(x)-u,c(-1e-9,1e4))$root
  • 【學習心得032】期權定價之蒙特卡洛模擬法
    期權定價的方法主要有蒙特卡洛模擬以及二叉樹的方法,我們首先介紹使用蒙特卡洛模擬的方法。
  • 如何用Excel計算投資組合的在險價值VaR?(單項資產、歷史模擬法)
    今天的主題是介紹另一個計算在險價值VaR的方法——歷史模擬法,歷史模擬法是將歷史上實際成交價的漲跌幅從低到高重新排序,這個做法是假設「歷史會重複其本身」,也就是一項資產或一個投資組合未來的價格波動會延續過去的走勢。如果將一項資產的每日價格波幅畫成直方圖,就可以比較各波幅數據發生的頻率。
  • 蒙特卡洛模擬的簡單例子
    蒙特卡羅模擬法的理論基礎是大數定律。其發展得益於計算能力的提升和計算成本的下降。蒙特卡羅模擬法在很多領域都有廣泛的應用。
  • 蒙特卡洛模擬方法及應用案例
    蒙特卡羅法也稱統計模擬法、統計試驗法。是把概率現象作為研究對象的數值模擬方法。是按抽樣調查法求取統計值來推定未知特性量的計算方法。
  • 期權定價之蒙特卡洛模擬法
    這裡選擇假設Z服從原始的正態分布,但是我們知道股票收益率存在尖峰後尾的現象存在,因此也可以選擇t分布或其他更合適的分布來隨機生成Z.下邊附上本次模擬的簡單代碼,經過模擬運算之後可以求得歐式期權的價格為0.155。
  • 什麼是蒙特卡洛模擬?
    蒙特卡洛方法正是以概率為基礎的方法,因為偶然性和隨機結果是建模技術的核心,就像輪盤賭,骰子和老虎機等遊戲一樣。蒙特卡洛方法(Monte Carlo method),也稱統計模擬方法,是二十世紀40年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。其使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。
  • 蒙特卡羅模擬法
    蒙特卡羅模擬法蒙特卡羅模擬法是一種使用隨機數和概率來解決問題的計算方法,它又稱隨機抽樣或統計試驗法,整體思路是(模擬——抽樣——估值),工作原理是不斷抽樣、逐漸逼近。通俗說就是建立一個模型用來模擬某事件,然後不斷隨機取樣,進行很多次實驗後,得出一個接近真實值的估值。
  • 無需數學知識:快速了解馬爾可夫鏈蒙特卡洛方法
    MCMC方法允許我們對後驗分布的形狀進行估計,從而解決這類無法直接計算的問題。這裡再次強調,MCMC的全稱即為馬爾可夫鏈蒙特卡洛方法。為了理解其工作原理,我將首先介紹蒙特卡洛模擬,而後再討論馬爾可夫鏈概念。
  • 蒙特卡洛模擬算法|公開課3
    本篇是「微慕課」公開課系列第3講——蒙特卡洛模擬算法蒙特卡洛(Monte Carlo)模擬方法是一種廣受好評的算法,
  • MCMC、蒙特卡洛近似和Metropolis算法簡介
    所以MCMC的目的就是運用蒙特卡洛模擬出一個馬可鏈(Markov chain)。如今,概率建模風靡一時,但是當我第一次了解它時,總有一件事情困擾我。 許多貝葉斯建模方法都需要計算積分,而我看到的任何工作示例似乎都使用高斯或伯努利分布,原因很簡單如果您嘗試使用比這更複雜的方法,它將成為分析的噩夢。
  • 一文了解AlphaGo中蒙特卡洛方法的由來與發展
    AlphaGo想必大家都相當熟悉了,除了卷積神經網絡技術的應用,蒙特卡洛搜索方法也是起到關鍵性作用的技術手段。接下來就簡單介紹蒙特卡洛方法的由來與發展過程。蒙特卡洛方法是一種通過生成合適的隨機數和和觀察部分服從一些特定性質或屬性的數據來解決問題的方法,通過在電腦上進行統計抽樣實驗為各種各樣的數學問題提供了近似解,這種方法對於一些太複雜以至很難分析求解的問題得到數字解法是非常有效的,而且同時適應於毫無概率性的問題和內在固有概率結構的問題。自1940年代初以來,蒙特卡洛模擬技術就開始正式存在,當時應用於核聚變的研究。
  • 蒙特卡洛方法在美式期權定價中的應用
    蒙特卡洛方法是以概率和統計理論方法為基礎的一種計算方法,利用隨機數(實際應用中通常為偽隨機數)來產生隨機的基於一定分布假設的數字序列,進而解決各種計算問題。通過對問題的結果分布進行假設和擬合,利用電子計算機實現統計模擬或抽樣,以獲得問題的近似解。為象徵性地表明這一方法的概率統計特徵,故借用賭城蒙特卡洛命名。
  • 蒙特卡洛梯度估計方法(MCGE)簡述
    其中,對於函數期望類目標問題,最常見的是基於蒙特卡洛採樣的方法。背景知識要了解基於蒙特卡洛採樣的梯度估計方法,首先先了解蒙特卡洛採樣方法和隨機優化方法。MCS 是一種經典的求解積分方法,公式(1)中的問題通常可以用 MCS 近似求解如下:
  • 蒙特卡洛模擬(Python)深入教程
    蒙特卡羅方法是一種使用隨機數和概率來解決複雜問題的技術。 蒙特卡羅模擬或概率模擬是一種技術,用於了解金融部門、項目管理、成本和其他預測機器學習模型中風險和不確定性的影響。風險分析幾乎是我們做出的每一個決定的一部分,因為我們在生活中經常面臨不確定性、模糊性和變化無常。 此外,即使我們擁有前所未有的信息獲取渠道,我們也不能準確預測未來。