利率

使用即期計量作為計價的 Libor 市場模型是否應該模擬無套利的遠期曲線?

  • September 16, 2021

我一直在看以下資源:

參考論文

使用方程

$$ 4 $$對於遠期 libor 利率的離散化版本: $ \tilde{L}^i_{T_{j+1}} = \tilde{L}^i_{T_{j}} exp[\sigma^i(\sum^i_{k = j + 1}\frac{\tau_k L^k_{T_{j}} \sigma^k}{1 + \tau_k L^k_{T_{j}}} - \frac{1}{2}\sigma^i)\tau_j + \sigma^i\sqrt{\tau_j}Z_j] $

現在有一些簡化的假設,即時間片 $ \tau $ 是 1 個週期和波動率函式 $ \sigma $ 是常數1,我得到以下資訊:

$ \tilde{L}^i_{T_{j+1}} = \tilde{L}^i_{T_{j}} exp[(\sum^i_{k = j + 1}\frac{L^k_{T_{j}}}{1 + L^k_{T_{j}}} - \frac{1}{2}) + Z_j] $

接下來,我假設一個初始平坦的市場遠期曲線 $ t_0 $ 6%(因此即期曲線也是平坦的 6%)。

那麼問題來了,基於上述的蒙特卡羅模擬不應該在未來創造一個無套利的遠期曲線嗎?

假設我以 6% 的利率在 2 年期現貨上投資 1 美元,給我 1.27497 $ t_2 $ (連續複利)。或者,我可以在 1 年期現貨上投資 1 美元,給我 1.061837 $ t_1 $ , 然後我投資新的 1 年現貨 $ t_1 $ . 這意味著該點在 $ t_1 $ 應平均為 6% 以保持無套利條件。

我在R中模擬這個……

F0 <- c(.06, .06, .06, .06, .06) # initial forward curve starting at T[0] and going to T[4]

paths <- 100000

Z0 <- rnorm(paths)

F1_0 <- F0[2] * exp((F0[2] / (1 + F0[2])) - .5 + Z0)
F1_1 <- F0[3] * exp((F0[2] / (1 + F0[2])) + (F0[3] / (1 + F0[3])) - .5 + Z0)
F1_2 <- F0[4] * exp((F0[2] / (1 + F0[2])) + (F0[3] / (1 + F0[3])) + (F0[4] / (1 + F0[4])) - .5 + Z0)
F1_3 <- F0[5] * exp((F0[2] / (1 + F0[2])) + (F0[3] / (1 + F0[3])) + (F0[4] / (1 + F0[4])) + (F0[5] / (1 + F0[5])) - .5 + Z0)

mean(F1_0) # 0.06359581

平均未來 1 年 $ t_0 $ 即期匯率已經收斂到0.0635,不是無套利的。根據我的設置,我應該現在投資1年期,然後明年投資1年期。

那麼給了什麼?我是否誤解了離散 LMM 的組件?離散化版本是否會引入某種漂移誤差?

編輯:

當我在 Matlab 中使用具有類似設置的瞬時波動率的 LMM 時,我看到了一些類似的行為:

Settle = datenum('1-Jan-2021');
CurveTimes = 0:10;
Rates = [0.06 0.06 0.06 0.06 0.06 0.06 0.06 0.06 0.06 0.06 0.06];
CurveDates = daysadd(Settle,360*CurveTimes,1);

irdc = IRDataCurve('Forward',Settle,CurveDates,Rates,'Compounding',-1);

LMMVolFunc = @(a,t) 1;
LMMVolParams = [1];
 
numRates = 21;
VolFunc(1:numRates,1) = {@(t) LMMVolFunc(LMMVolParams,t)};
 
Beta = 0;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
Correlation = CorrFunc(meshgrid(1:numRates)',meshgrid(1:numRates),Beta);
 
LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1,'NumFactors',1);

[ZeroRates, ForwardRates] = simTermStructs(LMM, 10,'nTrials',10000);

mean(ForwardRates(1,1,:)) % ans = 0.0618
mean(ForwardRates(2,1,:)) % ans = 0.0650
mean(ForwardRates(3,1,:)) % ans = 0.0925

再一次,平均的未來 $ t_0 $ 即期匯率正在上升而不是持平。我應該如何解釋這種漂移?我只是忍受它嗎?注意:我在 Matlab 中的能力明顯不如在 R 中,所以肯定有可能我在這裡做一些不合適的事情。

我認為在現貨(貨幣市場)衡量下,債券價格與貨幣市場賬戶的比率是一個鞅。因此,考慮這樣一個世界,第一年的連續複合利率已知為 6%,並且有一個定價為 exp(-0.12) 的兩年期零息債券。我們在第二年模擬利率 r。上述鞅條件給出$$ exp(-0.12)/1=E[ 1/exp(0.6+r)]. $$ 這簡化為$$ E[exp(-r)]=exp(-0.06). $$ 但是由於指數函式是負凸的,我們有$$ E[exp(-r)]<exp(-E[r]) $$或者$$ E[r]>0.06. $$ 從根本上說,由於債券的凸性,利率預期高於遠期利率。“誤差”應該隨著波動率的增加而增加,如果波動率為零,則應該變為零。

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