蒙特卡羅

這些步驟對於使用蒙特卡羅模擬計算風險價值是否正確?

  • August 31, 2018

我在使用蒙地卡羅模擬計算 VaR 時遇到問題。

我遵循了接下來的步驟,想知道這是否是計算 VaR 的正確方法,或者我是否需要更多的東西?

步驟

  1. 生成隨機數
  2. 定義相關矩陣
  3. 定義波動率、漂移和權重
  4. 執行相關矩陣的 Cholesky 分解
  5. 將隨機數乘以 Cholesky 矩陣
  6. 將第 5 步的結果乘以波動率和漂移
  7. 對第 6 步的結果取指數
  8. 獲取第 7 步結果的日誌返回
  9. 創建加權投資組合收益
  10. 計算 VaR(在正確的信賴區間使用百分位函式)
  11. 計算隨機數的揮發物
  12. 與分析 VaR 進行交叉檢查

關於加權投資組合收益。如果你有重量 $ w_i $ 和個人退貨 $ r_i $ 你的資產,那麼只有投資組合回報才是正確的 $ r $ 由標量積給出

$$ r = \sum_{i=1}^n w_i r_i $$ 如果 $ r_i $ 是通常的算術/簡單返回(不是 logreturn)。 因此,我的意思是簡單的回報

$$ r = P_{t+1}/P_t - 1 $$ 與對數返回相反 $$ R = \ln(P_{t+1}/P_t) = \ln P_{t+1} - \ln P_{t+1}. $$ 兩者之間的切換很容易,因為 $$ R = \ln(1+r) $$ 和 $$ r = \exp(R)-1. $$ Logreturns 適用於統計建模,因為它們的範圍從 $ -\infty $ 到 $ \infty $ 這就是有用的發行版存在的地方。對於投資組合應該使用幾何回報。 你可以做什麼:

  1. 為每個資產生成隨機對數回報,轉換為簡單回報。
  2. 聚合到投資組合的簡單回報
  3. 將投資組合收益轉換為對數收益
  4. 計算一個分位數。

有關退貨的更多資訊,您可以查看此處此處

我可以分享定價應用程序(例如:QuantLib)如何使用 Monte-Carlo 計算 VaR。

  1. 生成一個獨立的高斯隨機數向量。一個典型(且簡單)的實現是 Box-Muller。我更喜歡逆變換的方式,我覺得這也是QuantLib的預設方式。
  2. 現在,我們需要產生相關的回報。我們需要一個相關矩陣。通過 Cholesky 或奇異值分解來分解矩陣。SVD 是一個穩定的版本,但速度較慢。就個人而言,我已經使用了它們並且發現它們都令人滿意。
  3. 使用修正後的回報申請模擬方案。我的意思是,將隨機相關數代入擴散項。通常,我們使用 Eurler 方案,但您也可以使用 Milstein 方案。Eurler 方案近似於二階。
  4. 使用該方案生成獨立仿真路徑的列表。在成熟時為每條路徑定價。
  5. 現在你應該有一個收益列表,每條路徑一個。將它們折回併計算四分位數。這將是您的 VaR。

當你報告你的風險價值時,你總是需要包括你的顯著性水平和時間範圍。估計本身是沒有意義的。

引用自:https://quant.stackexchange.com/questions/17910