蒙特卡羅

準蒙地卡羅和布朗橋(如何結合)

  • November 20, 2021

我試圖了解如何將準蒙地卡羅 (QMC) 和布朗橋 (BB) 結合起來為資產定價,但我很難理解如何。我只是在考慮一個由簡單標量 SDE 建模的單一資產的歐式期權 $ S_t=a(S_t,t)\mathrm{d}t+b(S_t,t)\mathrm{d}W_t $ . 這是我到目前為止所理解的。

  1. 在通常的 Euler-Maruyama 近似中,我們使用  $ \hat{S}_{t+1}=a(\hat{S}_t,t)\Delta t+b(\hat{S}_t,t)\sqrt{\Delta t}\mathrm{d}Z_t $ .
  2. 在標準蒙地卡羅 (SMC) 中, $ \mathbb{E}f(S_t)\approx\frac1{L}\sum_{i=1}^Lf(S_t^{(L)}) $ , 在哪裡 $ L $ 是模擬編號。
  3. 我們也可以使用單個 BB $ M=2^N $  通過首先生成終點並使用 $ W_t|W_T\sim\mathcal{N}\left(\frac{t}TW_T,\frac{t(T-t)}{T}\right) $ 遞歸地生成中點。
  4. 在 QMC 中,我們使用低差異序列(例如 rank-1 lattice/Sobol 點)生成而不是偽隨機數。

因此,我有以下問題:

  1. 我如何結合 BB 和 QMC 的想法?我還沒有找到真正幫助我理解如何一起使用它們的資源。
  2. BB 的變異數呈幾何級數遞減,這不是好事嗎?我讀到 BB 只對 QMC 對歐式期權的估計有幫助,但對 SMC 沒有幫助。這是從哪裡來的?相同的資源提到它們“具有相同的變異數,因此收斂速度 $ \mathcal{O}(L^{-1}) $ “,這對我來說沒有意義。
  3. 這如何擴展到多種資產?到目前為止,我了解了 Cholesky 分解 $ LL^\mathrm{T}=\Sigma $ , $ L{\bf W}_t^\perp={\bf W}_t $ 幫助我們捕捉共變異數,但我不明白這如何與 QMC/BB 一起工作。

編輯:我特別提到的資源是  7 頁上的資源,上面寫著“兩種方案具有相同的變異數,因此它們的 MC 收斂率相同,但 QMC 採樣顯示 SD 和 BBD 的效率不同”。

將布朗橋與準蒙地卡羅相結合

  1. 我如何結合 BB 和 QMC 的想法?

布朗橋只是產生布朗路徑的一種手段 $ W $ ,而蒙地卡羅是我們可以評估期望和積分的一種方法。正常蒙地卡羅將使用偽隨機點集 $ U $ 估計這樣的事情,而準蒙地卡羅將使用低差異點集 $ \tilde{U} $ . 那麼蒙地卡羅方案需要改變什麼?產生高斯增量的製服 $ Z $ (又名正態隨機變數)應切換為低差異準隨機制服。為了保持序列的低差異屬性,最好使用不拒絕任何樣本的映射。可以說最好的方法是逆變換方法,我們通常使用正常蒙地卡羅方法 $ Z=\Phi^{-1}(U) $ , 在哪裡 $ \Phi^{-1} $ 是標準高斯分佈的逆累積分佈函式。對於準蒙地卡羅,您改為使用準高斯隨機變數 $ \tilde{Z}=\Phi^{-1}(\tilde{U}) $ .

除此之外,您可以在很大程度上照常進行,儘管為了獲得良好的估計,您確實希望進行隨機準蒙特卡羅。

我還沒有找到真正幫助我理解如何一起使用它們的資源。

我認為最好的資源是*Randomized Quasi-Monte Carlo: An Introduction for Practitioners* by Pierre l’Ecuyer。

  1. 這如何擴展到多種資產?

考慮到這一點,我認為您只需像往常一樣繼續進行,但使用一組準高斯隨機變數(並註意隨機化您的統一序列)。

關於您關於 SMC(我假設的順序蒙特卡羅)、布朗橋的變異數和您的(未命名的)資源的第二個問題,我不知道足以提出解決這一點的答案。

讓我用通俗的話解釋一下如何去做。如果您沒有依賴路徑的選項,我真的認為沒有必要使用布朗橋;如果它只是一個單一的日期到期(沒有平均),只需模擬到每個模擬的到期日期。

基本上,您通常希望使用 RQMC 而不是普通的 QMC(如第一個答案中所述),因為它適用於更複雜的問題,並且往往會產生更準確的結果。有各種可用的加擾方法(如果您使用 Python,最新的 SciPy 1.7.1 包有一個 Sobol 生成器(最多 21,201 個維度 - Joe 和 Kuo),內置加擾器 (Owen-Scrambling))https://docs .scipy.org/doc/scipy/reference/reference/generated/scipy.stats.qmc.Sobol.html. 這些點被輸入到標準正態累積分佈的倒數中,以生成您的 GBM 衝擊。與正常 MC 模擬使用 0->1 範圍內的偽隨機數相同的方式。最快的python函式是scipy.special.ndtri(0-> 1範圍內的數字)。您必須小心一點(即調整衝擊以避免 0 和 1 值,反過來會分別產生 -Inf 和 Inf 衝擊)。否則,就像在普通 MC 模擬中一樣使用。您應該注意到結果收斂速度比基於標準 MC 偽隨機數的方法快得多。

在布朗橋上 - 參考文件通常在模擬端點 T_expiry 時對此進行描述,然後反向求解將您想要的路徑拆分為 1/2、1/4/、1/8 等,直到創建所有衝擊。這對於亞洲風格的算術選項、一籃子亞洲算術選項、再次以相同風格展開的日曆等很常見。現在標準的布朗橋將在第一個模擬的 T_expiry 開始(和結束)。這座橋有一個固定的起點和終點,在這兩個點之間移動。查看範例總是更容易,請注意這是使用偽隨機數而不是 RQMC 的,並且也不關聯路徑:https ://gist.github.com/delta2323/6bb572d9473f3b523e6e- 請參閱第 1 條評論以獲取最後一次沖擊回到 0。無論如何,圖表將顯示衝擊始終以 0 衝擊開始並以 0 衝擊結束(開始和結束時的價格相同,與之間的隨機性)。

基本上將這兩個想法合併在一起並更改路徑的生成方式。1)從 F0 模擬到 T_expiry 的每條腿(比如籃子亞洲期權)。2) 為每個底層證券創建導致該值的布朗橋衝擊 3) 應用來自布朗橋的衝擊以獲得針對模擬 T_expiry 而不是 F0 價格的所有固定日期衝擊,將它們插入您的 GBM 方程。4)然後對每個模擬批次重複,並為您定價的期權類型執行正常的支付功能。這是 1 個模擬路徑的範例。相反,您可以提前產生所有衝擊(這是正常方式)。

這就是我理解將這些技術結合在一起的方式。我已經使用了 RQMC 並創建了我自己的 BB 技術版本,但還沒有將它們組合在一起進行奇異期權定價(目前)。任何有更多經驗的人,或者可以更清楚地解釋正確步驟的人,請隨時跳入並糾正我所說的任何不正確的地方。我真的只是根據我目前的想法,我讀到的關於每種技術的內容等將這些放在一起。

希望這可以幫助。這更像是一種務實的方法,而不是一種數學方法。

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