拓端tecdat|R語(yǔ)言對(duì)HullWhite短期利率模型仿真
原文鏈接:http://tecdat.cn/?p=18661
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
在這篇文章中,我使用?R
?建立著名的Hull-White利率模型并進(jìn)行仿真。
Hull and White(1994)模型解決Vasicek模型對(duì)利率的初始期限結(jié)構(gòu)的擬合不佳的問(wèn)題。該模型定義為:

Wt是風(fēng)險(xiǎn)中性框架下的維納過(guò)程,模擬隨機(jī)市場(chǎng)風(fēng)險(xiǎn)因素。σ是標(biāo)準(zhǔn)差參數(shù),影響利率的波動(dòng),波動(dòng)幅度有著瞬時(shí)隨機(jī)流動(dòng)的特征。參數(shù)b,a,σ和初始條件r0是完全動(dòng)態(tài)的,并且瞬時(shí)變動(dòng)。
該模型的另一種示形式是:


假定a是非負(fù)數(shù):
b:長(zhǎng)期平均水平。在長(zhǎng)期水平下產(chǎn)生一系列r的軌道值。
a:回歸速度。代表b的軌道值實(shí)時(shí)重組的速度。
σ:代表瞬時(shí)波動(dòng),測(cè)量每個(gè)時(shí)點(diǎn)隨機(jī)因素進(jìn)入系統(tǒng)的振幅。
以下是由公式導(dǎo)出的一些數(shù)值:

:長(zhǎng)期方差。計(jì)算在長(zhǎng)期所有r值圍繞平均值重組的軌道值。
a與σ數(shù)值相反波動(dòng):增加σ會(huì)增加隨機(jī)數(shù)進(jìn)入系統(tǒng)的數(shù)量,
當(dāng)a增加會(huì)使方差穩(wěn)定,圍繞長(zhǎng)期平均值b以方差值波動(dòng)。這在看長(zhǎng)期方差時(shí)十分明顯。 當(dāng)方差值不變時(shí),若σ增加,a減少。此模型是一個(gè)奧恩斯坦 - 烏倫貝克隨機(jī)過(guò)程。
這些假設(shè)以及?對(duì)信貸/流動(dòng)性風(fēng)險(xiǎn)的簡(jiǎn)單(并行)調(diào)整仍在保險(xiǎn)中廣泛使用?,但在2007年次貸危機(jī)后被市場(chǎng)拋棄。
有關(guān)新的多曲線方法的更多詳細(xì)信息,請(qǐng)參見(jiàn)例如?http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2219548。在本文中,作者介紹了一個(gè)多曲線自舉(bootstrap)過(guò)程。
#清理工作區(qū)
rm(list=ls())
?
#模擬的頻率
freq <- "monthly"
delta_t <- 1/12
#數(shù)據(jù)
params <- list(tradeDate=as.Date('2002-2-15'),
???????????????settleDate=as.Date('2002-2-19'),
???????????????payFixed=TRUE,
???????????????dt=delta_t,
???????????????strike=.06,
???????????????method="HWAnalytic",
???????????????interpWhat="zero",
???????????????interpHow= "spline")
#構(gòu)建利率期限結(jié)構(gòu)的市場(chǎng)數(shù)據(jù)
#存款和掉期
tsQuotes <- list(d1w =0.0382,
?????????????????s2y = 0.037125,
?????????????????s3y =0.0398,
#具有相應(yīng)期限和期限的掉期波動(dòng)率矩陣
swaptionMaturities <- c(1:5)
swapTenors <- c(1:5)
#為掉期定價(jià)
pric <- Swaption(params,?swaptionMaturities, swapTenors,
#構(gòu)建利率的即期期限結(jié)構(gòu)
#根據(jù)輸入的市場(chǎng)數(shù)據(jù)
times <- seq(from = delta_t, to = 5, by = delta_t)
maturities <- curves$times
############## Hull-White短期利率模擬
#模擬次數(shù),頻率
horizon <- 5
sims <- 10000
#校準(zhǔn)Hull-White參數(shù)
a <- pricing$a
sigma <- pricing$sigma
#使用模擬高斯沖擊
simshos(n = nb.sims, horizon = horizon )
#使用模擬因子x
#我使用遠(yuǎn)期匯率。由于每月的頻率較低,
#我認(rèn)為它們是瞬時(shí)遠(yuǎn)期匯率
fwdrates <- ts(replicate(nb.sims, curves$forwards),
????????????????start = start(x),
????????????????deltat = deltat(x))
# α
alpha <- fwdrates + param.alpha
#短期利率
r <- x + alpha
#隨機(jī)貼現(xiàn)因子(當(dāng)前的數(shù)值積分是非?;镜模?/p>
#由隨機(jī)貼現(xiàn)因子得出的蒙特卡洛價(jià)格和零利率
montecarlozerorates <- -log(montecarloprices)/maturities
#市場(chǎng)和蒙特卡洛價(jià)格之間的差異的置信區(qū)間
conf.int <- t(apply((Dt - marketprices)[-1, ], 1, function(x) t.test(x)$conf.int))
?
par(mfrow = c(2, 2))
#短期利率分位數(shù)
#蒙特卡洛vs市場(chǎng)零利率
plot(maturities, montecarlozerorates, type='l', col = 'blue', lwd = 3,
points(maturities, marketzerorates, col = 'red')
#蒙特卡洛vs市場(chǎng)零息價(jià)格
plot(maturities, montecarloprices, type ='l', col = 'blue', lwd = 3,
points(maturities, marketprices, col = 'red')
#價(jià)格差的置信區(qū)間
matplot(maturities[-1], conf.int, type = 'l'
?


最受歡迎的見(jiàn)解
1.用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應(yīng)用
2.R語(yǔ)言GARCH-DCC模型和DCC(MVT)建模估計(jì)
3.R語(yǔ)言實(shí)現(xiàn) Copula 算法建模依賴性案例分析報(bào)告
4.R語(yǔ)言COPULAS和金融時(shí)間序列數(shù)據(jù)VaR分析
5.R語(yǔ)言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)
6.用R語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例
7.r語(yǔ)言預(yù)測(cè)波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
8.R語(yǔ)言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場(chǎng)風(fēng)險(xiǎn)