HJM模擬問題
我正在嘗試模擬一個 3 因子 HJM 模型。我從 Glasserman 書中得到了算法。就我而言,我有 $ 3 $ 到期: $ 0.25y, 0.5y, 0.75y $ . 所以我的時間網格是: $ t_0=0,t_1=0.25,t_2=0.5,t_3=0.75 $ .
我正在嘗試通過以下方式為零息債券定價:
$ B(0,t_j)=\exp(-\sum_{i=0}^{j-1}r(t_i)h_i),\quad \text{where}\quad h_i=t_i-t_{i-1} $
公式。 $ h_i=\frac{3}{12} \forall i $
$ D(t_j)=B(0,t_j) $ 和起始值 $ D $ 是 $ 1 $ ,正如它在算法中所寫的那樣。
在第一個“for”循環中,索引只會持續到 $ M-1 $ ,即 $ 2 $ , 所以它不會與 $ r(t_2) $ .
換句話說:
$ i=1 $ $ \rightarrow $ $ D=D*\exp(-r(t_0)\frac{3}{12} ) $ ,
$ i=2 $ $ \rightarrow $ $ D=D*\exp(-r(t_1)\frac{3}{12} ). $
之後算法停止,所以我要麼必須將最大 indext 更改為 $ M $ 或者只是多個 $ \exp(-r(t_2)) $ 最後,但我不認為這些是好的解決方案。或者如果在 $ i=1 $ 情況下,我對債券價格的第一次更新是 $ r(t_1) $ ,那也很好,但是我不知道在哪裡 $ \exp(-r(0)) $ 在算法中。
我不確定這個特定的算法實現,但我對你的索引有點困惑,懷疑你也可能是這樣(例如 $ M $ 未定義,您正在展示的案例 $ i $ 當你的意思是循環 $ j $ )。我認為重新審視基礎知識會很有用:
讓 $ D_t \in (0,1] $ 是當時現金流的現值因子 $ t $ . 通過施工, $ D_0 = 1 $ .
經常, $ B(0,t_j) = \text{exp}{\int_0^{t_j} r(t) \ dt} $ 表示貨幣市場賬戶作為計價單位。在您的實現中,離散等效項是 $ B(0,t_j) = \text{exp}{\sum_{i=0}^{j} r(t_i) \Delta t_i} $ .
如果您從零開始的數據建構您的費率,您將採用倒數 $ B(0,t_j)^{-1} $ , 並將其等同於具有成熟度的零的價格 $ t_j $ (通過乘以 100 來調整報價)。看起來這就是你的 $ B(0,t_j) $ 表示,從 $ -1 $ 在指數中。這是有道理的(因為 Bond 以“b”開頭),但如果您正在閱讀使用其他符號的論文,最初可能會令人困惑。無論如何,我以後會使用你的符號。
無論如何,在您的實施中:由於您的 $ \Delta t $ 是恆定的,
$$ B(0,t_j) = \text{exp}\left(-\Delta t \sum_{i=0}^{j} r(t_i)\right) \ $$ 在哪裡 $ r(0) = 0 $ 和 $ r $ 是年化率。 為了清楚起見,第一次迭代, $ j=1 $ ,產生:
$$ B(0,t_1) = \text{exp}{-0.25(0+r(t_1))} \ $$ 第二次迭代, $ j=2 $ ,產生: $$ B(0,t_1) = \text{exp}{-0.25(0+r(t_1)+r(t_2))} \ $$ 為你所有的人迭代這個 $ t $ values 應該給你你正在尋找的東西。