版權聲明:私募工場致力於服務廣大投資者,推薦優秀基金管理人、培養優秀投資顧問,分享精華、精選、精讀內容。版權歸原作者所有。部分未聯繫到作者和原始出處的文章,請原作者聯繫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.
點擊閱讀原文進入可查看私募工場歷史課程