選項

使用兩個隨機變數的樣本路徑模擬

  • May 4, 2020

我想知道是否有一種方法可以使用兩個獨立的標準正態隨機變數而不是一個來生成幾何布朗運動的樣本路徑。

使用一個標準正態隨機變數的精確方案

$$ \hat{S}{t{i+1}}= \hat{S}{t{i}} \text{exp}\left( (r- \frac{\sigma^2}{2})(t_{i+1}-t_i)+ \sigma \sqrt{t_{i+1}-t_i} Z \right), \ i=0, \dots, n-1 $$.

我想知道是否有一個使用多個獨立正態隨機變數的確切方案。我專門針對一個障礙前向啟動類型選項提出這個問題,該選項一次有一個“障礙檢查” $ t $ .

我對這個案子的想法是 $ Z_1 $ 模擬 $ S_{t} $ 然後有一個獨立的 $ Z_2 $ 模擬決賽 $ S_T $ 但我不確定。

當您模擬標準布朗運動的樣本路徑時,您正在生成一個序列 $ (B_t)_{t \in \mathbb{\Pi}} $ 在哪裡 $ \mathbb{\Pi} := {t_0, …, t_n} $ 是你的時間分區。您可以將該序列視為 $ n $ 抽取相同的隨機變數,儘管沒有人能說這不是每個抽取 1 次 $ n $ 獨立的正態隨機變數。

**根據定義,**這是正確的。您可以根據需要劃分範例路徑並命名/定義事物,以便參與盡可能多的隨機變數,但除了浪費時間之外,我不明白這一點。

編輯

假設我們使用歐拉離散化。您使用 1000 個時間步長將一個月分成一個網格。對於每個範例路徑,您需要 $ (Z_t)_{t=1,…,1000} $ 其中每個 $ Z_t \sim N(0, 1/1000) $ .

在您的電腦上,您可以執行以下操作:

B = np.random.normal(loc=0, scale=1, size=1000 )
Z = np.sqrt(1/1000)*B

或者

B1 = np.random.normal(loc=0, scale=1, size=500 )
B2 = np.random.normal(loc=0, scale=1, size=500 )
B  = np.hstack( (B1,B2) )
Z = np.sqrt(1/1000)*B

您可以將這些步驟拆分為任意數量的向量。每個向量都是來自隨機正態分佈的一組抽取。您可以將其視為 1 rv 的多次抽獎、2 rv 各抽 500 次等。這只是定義問題。

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