期權

跳躍擴散模擬

  • December 26, 2020

我想模擬一個幾何布朗運動,我們假設股票的波動率只能取兩個值 $ \sigma_1=0.2 $ 和 $ \sigma_2=0.8 $ . 我們還假設從較低的波動率躍升 $ \sigma_1 $ 更高的波動性 $ \sigma_2 $ 以指數過程的速度發生 $ \lambda_1=2 $ . 同樣,從波動性跳下 $ \sigma_2 $ 降低波動性 $ \sigma_1 $ 作為指數過程發生,速率 $ \lambda_2=4 $ . 我知道如何模擬幾何布朗運動,但我不明白如何模擬波動。我必須將指數分佈中的一個數字與每一步的數字進行比較,以決定我是否會跳躍?

除了幾種方法,您可能會嘗試改進您的程式碼(我不會在這裡做);您的跳轉檢查無法正常工作:

在一個時間步 $ \Delta t $ , 過程會以機率跳躍 $ \approx exp(-\lambda \Delta t) $ . 因此,您需要比較

if (unifrnd(0,1) > exp(-lambda * dt))
 % jump occured
 % flip state
else
 % no jump occured
 % do not flip state
endif

HTH?

注意:您可能想要模擬制服向量,然​​後遍曆元素以獲取狀態 $ 1 $ 或者 $ 2 $ . 由此,您可以組成每個時間步長的波動率向量。

我假設您正在使用Matlabor Octave?如果是這樣的話,矢量化才是王道!

只需使用條件機率的定義。和 $ \gamma_t \in {-1,1} $ 一個返回 1 的指標 if $ \sigma = 0.8 $ 和 -1 否則,和 $ x_{1:T} $ 布朗運動在一段時間內的路徑 $ [1,T] $ 你有

$$ p(x_{1:T}, \gamma_{1:T}) = p(x_{1:T} \vert \gamma_{1:T})p(\gamma_{1:T}). $$

在實踐中你只是模擬,直到時間 $ T $ , 交替事件時間 $ \tau_i $ 從 $ \text{Exp}(\lambda_1) $ 和 $ \text{Exp}(\lambda_2) $ 直到 $ \tau_i > T $ . 以這些時間為條件,然後您只需模擬您的 GBM $ \gamma_t $ . 為了讓您的生活更輕鬆,請選擇您的步長,以便您非常接近所有事件時間 $ \tau_i $ 在模擬 GBM 時。

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