蒙特卡羅

模擬條件期望

  • December 21, 2011

通過它的 SDE 定義了一個多維過程 X(我們可以假設它是一個擴散型過程),讓我們定義另一個過程 $ g_t = E[G(X_T)|X_t] $ 為了 $ t\leq T $ .

我想模擬過程 $ g_t $ ,即離散化以用於蒙特卡羅模擬。最好的方法是什麼?

我能想到的兩種方法是(i)使用 Feynman-Kac 和有限差分來獲得 $ g_t $ 作為一個函式 $ X $ 和 $ t $ , 模擬 $ X_t $ 併計算 $ g_t $ (ii) 使用某種形式的 Longstaff-Schwarz 算法

有沒有更好/更簡單的方法?

編輯:我認為我的問題不夠清楚。我正在嘗試估計該過程的停止時間 $ g_t $ 擊中給定的障礙 $ b $ ,所以為了做到這一點,我需要模擬整個路徑 $ g_t $ . 很容易模擬 $ X_t $ 對於任何時間 t,但隨後得到 $ g_t|X_t $ 我需要為原始蒙地卡羅的每條路徑和每個時間步執行另一個蒙地卡羅(在蒙地卡羅內),這可能會花費太多時間。正是因為這個原因,Longstaff-Schwarz 算法被用於美式期權——使用快速啟發式而不是嵌套的蒙特卡羅模擬……

編輯2:讓我包括一些虛擬碼

for(int i=0; i<NoRuns; ++i)
{
 X_t = initial value;
 g_t = g(0, X_t); //TODO - how to calculate g_t?
 t=0;
 for(int j=0; j<NoSteps; ++j)
 {
   t+=dt;
   X_t = move X_t by dt, using e.g. Euler scheme
   g_t = g(t, X_t); //TODO - how to calculate g_t?
   if (g_t<= barrier) report(t, X_t, g_t);
 }
}

我不確定如何實現的位是以下幾行:

g_t = g(0, X_t); //TODO - how to calculate g_t?

如果可以模擬 $ N $ 次獨立實現 $ X_T|X_t $ 然後 SLLN 說: $ \tilde{g}^N_t=\sum_{i=1}^N\frac{1}{N}G(X_T)|X_t\to \mathbb{E}[G(X_T)|X_t] $ 幾乎可以肯定這是經典的,通常是唯一的方法 $ \mathbb{E}[G(X_T)|X_t] $ 用於高維工藝 $ X $ . 您甚至可以使用 CLT 獲得信賴區間 $ \tilde{g}_t $

問候

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